jmed999 Posted January 6, 2013 Posted January 6, 2013 Ok I have an Elk M1G and the Elk module. I have the following rules in my Elk... -Whenever Home Arm State becomes Disarmed And last user was Becky (User3) Then turn Output 65 On -Whenever Home Arm State becomes Armed And last user was Becky (User3) Then turn Output 65 Off -Whenever Home Arm State becomes Disarmed And last user was Denise (User4) Then turn Output 66 On -Whenever Home Arm State becomes Armed And last user was Denise (User4) Then turn Output 66 Off -Whenever Home Arm State becomes Disarmed And last user was Others (User5) Then turn Output 67 On -Whenever Home Arm State becomes Armed And last user was Others (User5) Then turn Output 67 Off -Whenever Home Arm State becomes Disarmed And last user was Kristen (User2) Then turn Output 68 On -Whenever Home Arm State becomes Armed And last user was Kristen (User2) Then turn Output 68 Off Then in the ISY I have the following programs... If On Thu From 8:00:00AM To 4:00:00PM (same day) And Elk Output 'Output 065' is On And $i.Every.Other.Thursday is 0 Then Set 'Thermostats / Downstairs Stat' 74° (Cool Setpoint) Set 'Thermostats / Downstairs Stat' 70° (Heat Setpoint) Else Set 'Thermostats / Downstairs Stat' 85° (Cool Setpoint) Set 'Thermostats / Downstairs Stat' 64° (Heat Setpoint) If Elk Output 'Output 065' is Off Then Send Notification to 'My text' content 'Becky Out' Set Scene 'Becky Lights' Fast Off Else Send Notification to 'My text' content 'Becky In' Set Scene 'Becky Lights' Fast On If Elk Output 'Output 066' is Off Then Send Notification to 'My text' content 'Denise Out' Else Send Notification to 'My text' content 'Denise In' If Elk Output 'Output 067' is Off Then Send Notification to 'My text' content 'Others Out' Else Send Notification to 'My text' content 'Others In' That's all the rules and programs I have that involve outputs. When the ISY loses power then later regains power or is rebooted or is updated everything is ok but the next time I start the Admin console after that, I get the 3 text messages from the programs above saying Becky, Other and Denise has left (not Kristen). Also, my thermostat changes from the current setpoints to 85/64. And if any lights in "Becky Lights" are on, they turn off. How do I get this to stop? This really has me confused. At Christmas the power went out for a moment, I then started the Admin console to check on all my HA devices and when I did the lights went out, thermostat changed and the text messages started rolling in. I have tested the system and can duplicate those actions but can't seem to get it fixed. Can you help? Thanks!
Xathros Posted January 7, 2013 Posted January 7, 2013 Hi jmed999- I don't have an ELK or the link between ELK and ISY so I'm just speculating here. Looks to me like the ISY has no reason to look at the IF conditions on most of your programs until an output changes status or the console is asked to display the current status. At this time the IFs are evaluated and either the then or else clauses run. I suspect that the elk outputs are handled by the ISY much like device status where they trigger on a change of status but unlike devices, they do not have an initial status at startup so the first time the ISY looks at them after startup it will trigger as a change regardless of what the status actually was. Again, this is all speculation on my part. The only solution I can think of would be to have a program run at startup then in turn calls each of your other program IF paths to initialize things but this may have the same effect of doing things based on the current condition of the elk outputs. It will just get it over with up front rather than later when you load the console. I have a similar situation where I would get a ton of notifications based on the current state of affairs at startup. My solution was to add a Notification Enable/disable integer variable where 1=enabled, 0=disabled. I set the init to 0. I have a startup program that runs the IF tests on the programs that notify then I set the var to 1 after the tests are done. From there on out I get notified on changes - just not the flood at startup. You didn't post the programs related to Kristen so I can't determine why that one didn't notify when the others did. No else clause on that one maybe? -Xathros
oberkc Posted January 7, 2013 Posted January 7, 2013 When the ISY loses power then later regains power or is rebooted or is updated everything is ok but the next time I start the Admin console after that, I get the 3 text messages from the programs above saying Becky, Other and Denise has left (not Kristen). I have no Elk module, and don't understand elk rules, or elk-based conditions. One thing I do notice, however, is that I see program to send any notifications regarding Kristen. This may explain why "not Kristen". I assume this all has to do with triggers, and when are elk conditions triggered? Any change in output? Upon queries? It seems to me that what is going on here is that these programs are being triggered at times not anticipated.
jmed999 Posted January 8, 2013 Author Posted January 8, 2013 What if I include "and ELK Output X Toggled" in the if statements then split each program up such that they do not have else statements. Since the ELK outputs wouldn't toggle at start up of the ISY would this solve the issue? Thanks guys! PS There is no program for Kristen on purpose. Sent using Tapatalk2
oberkc Posted January 8, 2013 Posted January 8, 2013 What if I include "and ELK Output X Toggled" in the if statements then split each program up such that they do not have else statements. Unfortunately, I don't have an elk (which is why I did not initially respond). I don't know what triggers elk conditions, nor the difference between "toggled" or not. Obviously, something is triggering these programs (in some cases true, in some false). The only thing I can think to do would be to perform experiments, attempting to duplicate the conditions, and watch the event monitor and program status list for clues as to what is triggering them.
jmed999 Posted January 8, 2013 Author Posted January 8, 2013 Looks to me like the ISY has no reason to look at the IF conditions on most of your programs until an output changes status or the console is asked to display the current status. At this time the IFs are evaluated and either the then or else clauses run. I suspect that the elk outputs are handled by the ISY much like device status where they trigger on a change of status but unlike devices, they do not have an initial status at startup so the first time the ISY looks at them after startup it will trigger as a change regardless of what the status actually was. Again, this is all speculation on my part. I think Xathros nailed it! I'll add the toggle to the programs and split them so there's no "else" then test. I'll let you guys know if this solves the issue. Thanks!
jmed999 Posted January 8, 2013 Author Posted January 8, 2013 Well there is no toggle for the Elk outputs....
Xathros Posted January 9, 2013 Posted January 9, 2013 The bottom of my last post should solve this for you. -Xathros
apostolakisl Posted January 9, 2013 Posted January 9, 2013 Your Elk logic is flawed. You are turning user specific outputs off when someone arms and on when someone disarms. This will work fine as long as each arm/disarm cycle is done by the same person. But anytime a second person gets involved, you will have your on/off status' all mixed up. You should just have the Elk do a 1 second "on" for each persons output regardless of whether it was an arm or disarm event. For example if becky turned the system on, then someone else turned it off, then becky turned it back on, then the folloiwing program will not trigger, the second time becky arms the system. If Elk Output 'Output 065' is Off Then Send Notification to 'My text' content 'Becky Out' Set Scene 'Becky Lights' Fast Off Else Send Notification to 'My text' content 'Becky In' Set Scene 'Becky Lights' Fast On The output will have been off from the first time she armed it, but since she didn't disarm it, it will stay off. When she arms it again, it will already be off, thus nothing changes and no text is sent. If instead you did a momentary on. Whenever Elk is armed and last user was becky then turn output 65 on for 1 second Whenever Elk is disarmed and last user was bekcy then turn output 65 on for 1 second If Elk output 65 is turned on And Elk is disarmed Then send text disarmed becky Else - - If Elk output 65 is turned on And Elk is armed Then send text armed becky Else - - This will also fix your issue with output status at startup since they will all be off
jmed999 Posted January 10, 2013 Author Posted January 10, 2013 It may have helped of I would have said Becky is the cleaning lady and only comes when nobody else is home once every 2 weeks. Denise only comes about once every 6 months. Other is my dog sitter and only comes once every 2 months or so. So they don't ever interfere with each other. So the people in the programs do cycle the arm and disarm without anyone else interfering. If these were my kids (I dont have kids) then it would be a problem. The other thing I noticed is Elk will only use "last person was" if the arm and disarm is the same number. Meaning if Becky disarms turn 65 on and if she arms turn 65 off....that works but If Becky disarms turn 65 on and if Becky arms turn on 66 does not work. It has something to do with "last person" and using the same output number. I was able to split the programs up to eliminate the lights and thermostat being an issue. The only issue now is getting 3 texts on reboot. I think your suggestions will prevent those though. Thanks for your help! I'll try it and let you know what happens.
Xathros Posted January 10, 2013 Posted January 10, 2013 apostolakisl- Thanks for chiming in here. Not having an ELK, I was in over my head on this one. I am planing for an ELK install at my place hopefully within a year or so and will certainly benefit from that info. -Xathros
Recommended Posts