Easier to program rules (M1 Gold vs OPII)?

cgull

Member
I have to pull the trigger on either the M1 Gold or OPII and I was wondering if one was easier to program new rules than the other. I've read the logic comparison spreadsheet and they have pretty much the same logic operators so my question is about the 'usability' of the application used to program the rules. Sheetrock is going up in the house and I had the contractor doing the security add additional motion sensors for HA as well as Cat5 runs to a lot of light switches (for ALC hardware if that's the path I choose). He's going to install either the M1 Gold or OPII for the security system and I was going to come in later and program rules for HA.

I've read a lot of threads comparing the capabilities of these two systems (including touch screen customization etc.) but I haven't been able to find anything related to the 'ease of use' of programming rules for either system. I'd appreciate any feedback you have on this!
 
A quick 2 cents, don't worry about it. Both use a basic event-based model and are programmed with a simplified GUI logic structure. If you have the analytical/technical/intellectual/etc ability to learn to program one, you can do the other. If you can't figure out one, you probably can't handle the other either.

Unless you are planning on teaching lots of clients how to do this, I wouldn't worry about. You can download the Elk M1 software for free to try the syntax. Both are far easier than any programming language, but a bit of a learning curve for a non-engineering type.
 
I can't compare the two because I only have the Elk. The Elk programming is straight forward and reliable. I am not a computer programmer and was able to get a handle on it in a couple hours. It is a bit limited in some of its capabilities and requires a few workarounds to get some things to execute. The integration with lighting is a bit limited. I have Insteon with about 60 units and probably another 60 scenes and find Elk to be a bit frustrating because of its limited ability to name the lights and scenes (somethine like 8 characters).

As far as things my Elk does reliably is run my sprinkler system (16 zones operated from 2 elk relay boards), turn on and off my homes water supply, phone me and email every time something happens that I want it to phone or email me about, open and close my garage doors according to certain conditions, turn lights on and off based on alarm zone activity and position of sun, respond to keyfob commands, respond to iphone commands, and of course be a good alarm system.

If ISY ever finishes fully integrating their unit with Elk and you want to use Insteon, then that will be a very hard to beat combination.
 
I've been trying a simple event with a few lines on the HAI panel and it still doesn't work the way I want it to. I use both the door bell and an outdoor motion sensor together to trigger the "door bell" chime.

I've been using flags and counters but its still not doing what I want it to do.

I want the doorbell to ring once only.

This would be a good way to compare the two methodologies of programming the two consoles.

Any suggestions?
 
Like most people here, I haven't used both, so can't tell you. HAI used to be pretty limiting, but with version 3 firmware, its much improved. For example, you can with one IF perform a bunch of actions, where before, it was one IF to one action. You can also add comments in your code, which is helpful.

Here is a webinar that walks you through some programming.
HAI Advanced Programming 1
 
Seems like you need to get Steve to chime in here... he's one of the regulars who's got experience with both... or someone from AO.

As I understand it, they both have pros and cons and there's no clear winner. Back when I did it, Elk was the choice because they were DIY friendly and HAI wasn't; but that's changed. My other factor was that I thought the Elk keypads looked better. Silly, but it worked for me.

All in all though, it sounds like they're both pretty similar.
 
So here's the basic for HAI: (its not doing what I want and I have tried a couple of different methodologies)

Code:
1.	//	========================
	//		   DOORBELL
	//	========================
2.	WHEN Doorbell NOT READY
		AND IF Ex Frnt Door IR NOT READY
			THEN Door Chime TOGGLE

Code:
1.	//	========================
	//		   DOORBELL
	//	========================
2.	WHEN Doorbell NOT READY
			THEN Door Chime TOGGLE
3.	WHEN Ex Frnt Door IR NOT READY
			THEN Door Chime TOGGLE

Code:
1.	//	========================
	//		   DOORBELL
	//	========================
2.	WHEN Doorbell NOT READY
	WHEN Ex Frnt Door IR NOT READY
			THEN Door Chime TOGGLE


No flags nor counters at this time. I want the doorbell to ring ONCE ONLY if one of two (or more) variables are triggered.

So what would be better?
1 - Start a counter? Increment counter by one (1), and only enable chime when counter is 1; then reset counter to zero?
2 - Enable and use a flag?
3 - start a timer?

The door chime today is an X10 chime (three of them). Would it be better to utilize an output to one hardwired chime?

How would this endeavor be done on an M1?
 
I want the doorbell to ring ONCE ONLY if one of two (or more) variables are triggered . . . How would this endeavor be done on an M1?
Seems to me that you need timing of some sort, both to provide some persistence of motion detection, and to "reset" the doorbell for the next visitor. M1 code might be something like this:

Code:
1.  WHENEVER <motion detected>
		AND OUTPUT 100 IS OFF
		  THEN <activate doorbell chime>
		   THEN TURN OUTPUT 100 ON FOR 60 SECONDS
  
  2.  WHENEVER <doorbell button is pressed>
		AND OUTPUT 100 IS OFF
		   THEN <activate doorbell chime>
		   THEN TURN OUTPUT 100 ON FOR 60 SECONDS
You can extend this to additional conditions with one rule for each condition.

Note that Output 100 in this case is deliberately not a physical output, it is any unused (no hardware) output that serves simply as a phantom flag in the M1.
 
In HAI speak then:

Code:
1.	//	========================
	//		   DOORBELL
	//	========================
2.	WHEN Doorbell NOT READY
	WHEN Doorbell Flag OFF
			THEN Door Chime TOGGLE
			THEN Doorbell Flag ON FOR 60 SECONDS
3.	WHEN Ex Frnt Door IR NOT READY
	WHEN Doorbell Flag OFF
			THEN Door Chime TOGGLE
			THEN Doorbell Flag ON FOR 60 SECONDS

Is it possible then to combine both of these "variables" with an "or" statement so that either one triggers the same event (chime) in HAI speak or M1 speak?
 
Is it possible then to combine both of these "variables" with an "or" statement so that either one triggers the same event (chime) in HAI speak or M1 speak?
Not in the M1 rule set. A rule is initiated by one, and only one, specific trigger. In the doorbell case there are two distinct triggers so this forces the use of two rules.

FWIW, if there were a large number of conditions (triggers) which would lead to a large number of rules, I would take the "activate doorbell + turn on Output 100" steps out of the rules and put these into a separate task, which in turn would be called by each rule. This would clean-up and simplify the coding, but probably more important, it would save some rules space.
 
OK so I add a counter to the flag and break it up a bit ....will the follow ring the chime once based on whichever variable changes? And to do the same or similar with an M1?

Code:
1.	//	========================
	//		   DOORBELL
	//	========================
2.	WHEN Doorbell NOT READY
		AND IF Chime Counter CURRENT VALUE IS 0 
			THEN Doorbell Flag ON
			THEN INCREMENT Chime Counter
3.	WHEN Ex Frnt Door IR NOT READY
		AND IF Chime Counter CURRENT VALUE IS 0 
			THEN Doorbell Flag ON
			THEN INCREMENT Chime Counter
4.	WHEN Doorbell Flag ON
		AND IF Chime Counter CURRENT VALUE IS 1 
			THEN Door Chime TOGGLE
			THEN LOG Front Door Chime
			THEN DECREMENT Chime Counter
			THEN Doorbell Flag OFF
 
I probably wouldn't waste a counter to do the job of a simple flag. On the other hand, in the M1 you can put a label on any counter, but not on every output. Also in rules 2 and 3 the counter increments should probably precede the doorbell flag setting, otherwise there is a chance that rule 4 would never execute (I am not saying for sure, just that I have noticed some past oddities of M1 rule execution that suggest a lack of strict serialization). Overall, however, for just those two trigger conditions, I don't see how this last set of rules is a simplification or an improvement.
 
I am kind of just playing with the programming to see the results a bit.

So with M1 you would just utilize a flag and add what is in line 4 to lines 2 &3?

Does increasing the lines of programming also increase the utilization of the processor/decreasing response times in both M1 and HAI Panel?

Thank you.
 
I am kind of just playing with the programming to see the results a bit.

So with M1 you would just utilize a flag and add what is in line 4 to lines 2 &3?

Does increasing the lines of programming also increase the utilization of the processor/decreasing response times in both M1 and HAI Panel?

Thank you.

I can't answer about M1, but can say for HAI, I haven't seen large programs slow it down. From what I've seen, HAI code doesn't seem to just run in a loop, over and over, rather no code runs until something happens, then the code associated with THAT action runs. The only time the panel had some problem was under HomeSeer that only polls over a serial port using an old polling protocol. With CQC connected via Ethernet and polling a distant memory, no problems at all. Everything seems instant.
 
Actually the last code / variations of the code did get "caught" in somewhat of a loop (time) and the chime rang and rang last night during a pizza delivery. Somewhere have to insert some sort of delay in the code because it as written I can see that it would somewhat loop.

I currently don't use HS / HAI connection for anything super time sensitive/emergencies/life saftey because of the plugin polling issues/ time delays. HS uses the IR's but HS HAI plugin IR events are not critical. Actually mostly all critical / events that I care about are run from the HAI panel. IE: lights regular, lights bases on IR motion, thermostat, etc. I switched my lighting over to the panel many years ago. The trigger for said endeavor was a HW failure on the HA server the day before going out of town for a week or so. None critical and test HA events are run from HS. I still do get TTS events being triggered by some rogue HS/HAI legacy serial com issues - very annoying - alarm TTS on/off at irregular / non HAI driven times, etc. I'm glad I have no "life saftey" events set up in HA right now. What I do have and care about are 18 plus serial connections on HA box do screen scraps, 1-wire data input, controlling my sprinkler system, etc.

I have decided to go to a small footprint mini-itx dual core based HA box (just 2.5 " Raid-1 HD setup) (something like 8"X8" by 2" or so) using just the ethernet / USB ports and maybe attach this box to the basement catch all way adjacent to the HAI panel/ media panel.

I have time to play and will look at CQC set up on another 2003 box - what would the basics be right now for a pure CQC-HAI panel HA setup?
 
Back
Top