• You've been granted Beta access to this site, allowing you to explore some of the new features while they're still under construction. More information can be found in the Beta forum.

ELK RP Programming Question


I'm just starting to program an Elk M1 Gold and am very impressed with all of its features! Though it doesn't have all of the features of my current automation system which includes HomeSeer, Caddx NX8E, Ocelot w/ Relay and SECU (output/input modules), and voice announcement system it comes close. That is what impressed me the most about this system!

I do have a beginner's programming question though. I am used to the Ocelot which uses ladder logic and can incorporate many timers. I can start a timer based on a condition, then perform actions triggered by an elapsed time(s). I can then reset the timer when it reaches a certain value, or by another condition.

Here is a CMax Ocelot programming example that I use for my garage door below (Timer #7 is the timer used in this example):

0214 - IF Module #1   -SECU16-I Garage_Door Turns ON             // When Garage Door Closes

 0215 -     THEN Exit_Variable = 0                                // Reset Exit Variable to 0
0216 - IF Module #1   -SECU16-I Garage_Door Turns OFF            // If Garage Door Opens

 0217 -   AND Exit_Variable is = 0                                // And NOT in Exit Mode
0218 -   AND Module #1   -SECU16-I Armed_Away Is OFF             // And armed in AWAY mode

 0219 -     THEN Timer #7 = 1                                     // Start Timer #7
0220 - IF Timer #7 becomes > 100                                 // If 100 Seconds Go By
0221 -   AND Module #1   -SECU16-I Armed_Away Is OFF             // And still armed in AWAY mode

 0222 -     THEN Garage_Alarm_Variable = 1     // Set Garage Alarm Warning Variable (20 sec left)

 0223 - IF Timer #7 becomes > 120                       // If 20 More Seconds Go By
0224 -   AND Module #1   -SECU16-I Armed_Away Is OFF             // And still armed in AWAY mode
0225 -     THEN Any_Alarm = 1                                    // Set Garage Alarm Variable

 0226 -     THEN Module #2     -RELAY-08 Garage_Door Turn ON      // Set Garage Out to OPEN to Caddx Panel

 0227 -     THEN Robo_Dog_In_Garage, Turn ON                      // Robo Dog ON

 0228 -     THEN Transmit X10,  C - All Lights ON  (18)           // Turn ALL Lights on for Alarm Condition

 0229 -     THEN Back_Left_Flood, Turn ON                         //  
 0230 -     THEN Back_Left_Flood, Turn ON                         //  
 0231 -     THEN Back_Right_Flood, Turn ON                        //  
 0232 -     THEN Left_Side_Flood, Turn ON                         //  
 0233 -     THEN Right_Side_Flood, Turn ON                        //  
 0234 -     THEN Transmit X10,  D - 3                             //  
 0235 -     THEN Transmit X10,  D - 4                             //  
 0236 -     THEN Transmit X10,  D - 7                             //  
 0237 -     THEN Transmit X10,  D - 8                             //  
 0238 -     THEN Transmit X10,  D - ON  (19)                      // 
 0239 - IF Timer #7 becomes =  300                                // After Five Minute Garage Alarm Timer

 0240 -     THEN Module #2     -RELAY-08 Garage_Door Turn OFF     // Set Garage Out to CLOSED to Caddx Panel

 0241 -     THEN Module #2     -RELAY-08 Garage_Siren Turn OFF    // Turn off Garage siren

 0242 -     THEN Robo_Dog_In_Garage, Turn OFF                // Turn Robo Dog OFF
0243 -     THEN Garage_Alarm_Variable = 0     // Reset Garage Warning Variable
0244 -     THEN Any_Alarm = 0          // Reset Garage Alarm Variable
0245 -     THEN Timer #7 = 0         // Reset Timer #7

You can see the conditions that are used when Timer #7 reaches certain values (elapsed times). This is a very nice feature of the Ocelot and one I use a LOT!!

My question is can I acheive the same timer feature with the Elk M1 Gold? I see where I can set a zone for a certain time, but that's about it (and that is to limited).

Thanks in advance for any advice and replies.



Senior Member
The M1 has a 16 bit timer associated with every output (208 of them) and every lighting device (256 of them).

The M1 timers are set to a value 1 to 65535 seconds and they count to zero. When they reach zero an event is triggered to turn on, turn off, or toggle the output or light. Use this event to control other things.

You can use the outputs or lights timers even though you do not have an output or light assigned to them.

Explain anything you are doing with another system and I will show you how to do it with the M1 within its capability.

PS. The show was good today.


Hey Spanky;

Thanks for the reply, especially when you are probably tired from the show!!! I appreciate it. ;)

I was hoping maybe creating another squeaky wheel here as I use the timer function a lot and it is easier with the methodology above, especially when you use multiple events based on the timer's value.

I will play around with your suggestion and see how it goes though.

Thanks again,



Senior Member
It would be nice to create a trigger "if zone X has been violated for 5 minutes then ..." without using a fake output and its timer.


Senior Member
Spanky said:
Explain anything you are doing with another system and I will show you how to do it with the M1 within its capability.
This idea should be expanded somehow across several platforms... that is, there should be a place where a common automation scenario is defined and then people post the code snippet to accomplish it on their platform of choice. That way you could see the differences in accomplishing the same thing using CMax vs. ElkRP vs. Homeseer vs. Stargate vs. CQC vs. Homevision vs. xPL vs. ECM vs. HAL vs. HAI Omni vs. Girder vs. HCA vs. whatever.