Jump to content

I'm real puzzled at why my ISY is doing this....


jmed999

Recommended Posts

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!

Link to comment

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

Link to comment
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.

Link to comment

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

Link to comment
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.

Link to comment
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!

Link to comment

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

Link to comment

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.

Link to comment

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

Link to comment

Archived

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


×
×
  • Create New...