Jump to content

Using KeypadLinc to trigger events


Recommended Posts

Posted

I'm trying to create a power on/off sequencer for my church sound system.  I'm using the Insteon 8-button KeyPadLinc (2334-224 Rev 7.7) to initiate events in my ISY-944i controller (firmware version 4.3.26). Using the keypad as factory configured, only buttons A, B, and C will generate an event.  Buttons D-H will show a change in current state when pressed but do not create an event. I've confirmed this behavior with the Administrative Console event viewer (Tools | Diagnostics | Event Viewer).  My event handler looks like:

 

if
   Control 'PowerAmpKeys - E' is switched On
then
   . . .

 

I've read the user manual on the keypad and scoured the forums but could not find any mention of differences in buttons A-C versus D-H.  Can anyone explain this behavior and provide a remedy?  Thanks in advance.

Posted

I am unaware of any inherent differences between those buttons that would explain why one would trigger a program and one would not.

Posted

There is zero difference in any of the buttons except for the A button in that it's inherently tied to the load. I would explain your setup exactly as it sounds like there could be a mistake somewhere within your programing

Posted

Any particular reason the you're using programs rather than scenes? Programs have an inherent delay, scenes are instantaneous.

Posted

I'd try a factory reset of the device as step 1.

I second that one. KPLs have many comm channels to be set upand possibly one link in the chain is missing.

 

Out of the box, any Insteon device without a factory reset, is asking for trouble.

Posted

Thank you all for your recommendations.  I performed another factory reset on the keypad device.  I had done it before but incorrectly. This time, after the reset, all buttons performed consistently but I had a communication problem with the device.  I deleted the keypad device from the ISY device list and then re-added it.  Now all the buttons are creating ON events.

 

I believe that my problem was a device naming conflict between the keypad device and my programs. I had renamed the device several times to get the correct logical connotation but might have screwed up somehow (the joy of newbie-hood).  I observed after the reset/reinstall described above the name mismatch as follows:

 

'PowerAmpKeys - E'    the name of the device
'PowerAmpKeys- E'     the element in my conditional statement

 

Notice the difference with the missing space character.  When I updated my statements to the correct names things started working. I can't explain how I got the name mismatch since programming is menu driven but there might have been some thrashing about as I got started.

 

My end goal is to automate the power on/off sequence of my church's audio systems.  The equipment stack has four stable states:

0 - AllOff (all equipment is powered off)
1 - Console (the audio mixing console and related equipment rack are powered on)
2 - Monitor (the console, preamps, and musician's monitor power amps are powered on)
3 - Sanctuary (the console, preamps, monitor amps, and sanctuary main amps are powered on)

 

The equipment must power on in ascending state order and power down in descending order.  There are various time delays needed to allow equipment to stabilize before energizing down-stream equipment.  To accomplish this I intend to have a pushbutton to request each of these stable states.  A state machine will implement the logic to automate the sequencing and to interlock against wrong sequencing.  The user should be able to push any button in any order without violating the proper sequence. 

 

I'm using four of the KeyPadLinc buttons to set the variable 'i.audioRequestedState' to a value of 0 to 3 corresponding to the above stable states.  For example:

 

RequestConsole - [iD 000F][Parent 0006]

If
        Control 'AudioKeypad - E' is switched On
 
Then
        $i.ccacAudioRequestedState  = $i.CCAC_AUDIO_STATE_CONSOLE
        Run Program 'AudioUpdateState' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')
 

The state machine will compare the audioRequestedState and audioCurrentState variables and trigger the proper actions to move to the requested state by activating controlled on/off outlets.  I believe the complexity of the state logic is best implemented in programs as compared to scenes. 

 

Again, thank you all for your quick and thoughtful responses.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...