Blackbird Posted March 13, 2015 Author Posted March 13, 2015 Well it did work but I guess it back to the beginning again. Now what?
stusviews Posted March 13, 2015 Posted March 13, 2015 (edited) Replace the magnetic contact switch. In the interim, create a scene where the button is a controller and the relay is a responder. Create another scene that contains only the button. Write a program that turns the button scene On if the sensor is open, otherwise (else) turns the button scene off. Edited March 13, 2015 by stusviews
Blackbird Posted March 14, 2015 Author Posted March 14, 2015 (edited) I am using the garage door in a scene with the keypad and reversed the trigger and it works great. I do however receive a 3am notification saying the door is open so I simply scheduled the notifications for every time except a 10 minute window around 3am. Edited March 15, 2015 by Blackbird
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 Well I spoke too soon. For some reason I received an email notificaton at 3:05am exactly the time I scheduled it for. Why is it doing this and how can I prevent that one notification
Xathros Posted March 16, 2015 Posted March 16, 2015 The best solution is to replace the magnetic switch as mentioned previously, then uncheck Trigger Reverse in the IOLinc options dialog. If you don't want to replace the switch, then I believe there was a program based solution offered previously as well for reversing the KPL Button state on any IOLinc status change. -Xathros
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 I was more wondering if its possible to stop or ignore that 3am notification. Other than that it works well.
Xathros Posted March 16, 2015 Posted March 16, 2015 You could create a new "AlmostEverything" scene and include everything except the IOLink then edit the 3am query to use your new scene instead. -Xathros
oberkc Posted March 16, 2015 Posted March 16, 2015 I would certainly think it possible to exclude a certain time period in a program to send notifications, yes. Is it possible you have an error in your program?
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 You could create a new "AlmostEverything" scene and include everything except the IOLink then edit the 3am query to use your new scene instead. -Xathros So in other words bypass the 3am querry for the keypad?
Xathros Posted March 16, 2015 Posted March 16, 2015 (edited) No, for the IOLinc. -Xathros Sent from my iPhone using Tapatalk Edited March 16, 2015 by Xathros
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 I would certainly think it possible to exclude a certain time period in a program to send notifications, yes. Is it possible you have an error in your program? Below is my program. I now get an email at 305 am instead of 3 If Status 'Overhead garage door-Sensor' is On And From 3:05:00AM To 2:55:00AM (next day) Then Send Notification to 'email' content 'Garage Overhead Door sensor Open' Else - No Actions - (To add one, press 'Action') No, for the IOLinc. -Xathros Sent from my iPhone using Tapatalk ok and how important is that nightly query and am I at risk of anything if I bypass it?
oberkc Posted March 16, 2015 Posted March 16, 2015 On the surface, your program looks like it should work. However, consider the triggers of your program: Change in status, time is 0255, and time is 0315. At each trigger point, it will evaluate the total condition and respond. So...at 0305, if the status of the sensor is true, it will send a message. You may need to take an alternate approach. Try a couple of programs: if status of sensor is true then run next program (if path) else nothing Next program (disabled): if time is from 0305 to 0255 (next day) then send notification else nothing I understand you may be able to safely remove the query program, but it serves a useful function, so I would do so only as last resort. The query program can be helpful in keeping devices synced with ISY in the event of comm problems.
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 On the surface, your program looks like it should work. However, consider the triggers of your program: Change in status, time is 0255, and time is 0315. At each trigger point, it will evaluate the total condition and respond. So...at 0305, if the status of the sensor is true, it will send a message. You may need to take an alternate approach. Try a couple of programs: if status of sensor is true then run next program (if path) else nothing Next program (disabled): if time is from 0305 to 0255 (next day) then send notification else nothing I understand you may be able to safely remove the query program, but it serves a useful function, so I would do so only as last resort. The query program can be helpful in keeping devices synced with ISY in the event of comm problems. So the first program will only run my original program is the status of the io link is true? And keep my original program disabled?
oberkc Posted March 16, 2015 Posted March 16, 2015 So the first program will only run my original program is the status of the io link is true? And keep my original program disabled? Not quite. While the "next" program may be similar to your original, it is not the same. Delete the original program (or modify to match the "next" program.)
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 Not quite. While the "next" program may be similar to your original, it is not the same. Delete the original program (or modify to match the "next" program.) How is it different?
oberkc Posted March 16, 2015 Posted March 16, 2015 How is it different? Compare the condition of your program: Status 'Overhead garage door-Sensor' is On And From 3:05:00AM To 2:55:00AM (next day) with that of the "next" program: time is from 0305 to 0255 (next day)
Blackbird Posted March 16, 2015 Author Posted March 16, 2015 Compare the condition of your program: Status 'Overhead garage door-Sensor' is On And From 3:05:00AM To 2:55:00AM (next day) with that of the "next" program: time is from 0305 to 0255 (next day) So instead of selecting "From" I need to select "Time is"?
oberkc Posted March 16, 2015 Posted March 16, 2015 (edited) So instead of selecting "From" I need to select "Time is"? No. My syntax was, unfortunately, approximate. Sorry. The difference is that your program condition is unrelated to syntax. Your program has two triggers: 1) status ..... is ON 2) time is from ... to My "next" program has only one trigger 1) time is from .... to Edited March 16, 2015 by oberkc
Blackbird Posted March 17, 2015 Author Posted March 17, 2015 (edited) Ok how about this? Title of this program is "Overhead Garage door notification 1 of 2" and it is enabled If Status 'Overhead garage door-Sensor' is On On means the door is opened Then Run Program 'Overhead Garage door Open Notification 2 of 2' (If) Else - No Actions - (To add one, press 'Action') Title of this program is "Overhead Garage door Open Notification 2 of 2" and it is disabled If From 3:05:00AM To 2:55:00AM (next day) Then Send Notification to 'email' content 'Garage Overhead Door sensor Open' Else - No Actions - (To add one, press 'Action') Edited March 17, 2015 by Blackbird
oberkc Posted March 17, 2015 Posted March 17, 2015 I expect this to work, yes. Don't forget to get rid or your old program, if you have not done so already.
Blackbird Posted March 17, 2015 Author Posted March 17, 2015 So what is it about your method that you think this will work?
oberkc Posted March 17, 2015 Posted March 17, 2015 It is all about triggers. The first program will trigger (self initiate) upon ANY CHANGE OF STATE of the sensor. The next program will filter those, however, eliminating any not between the specified time period. The second program will NOT trigger at 0255 or 0305, however, since it is disabled. It is this last point that marks the difference between the approach I suggested and your original program. Your program was triggering at the two points in time defining your time range. Once triggered (at 0305, for example), it was, I suggest, evaluating true, and sending your dreaded notification. You may also want to consider CONTROL, rather than STATUS, of your sensor node as a program condition. Since the query returns an ON/OPEN when, in fact, the door is closed, the first time after the query that the door is truly opened, there will be no change in status. Using CONTROL condition should help solve that problem. Having said this, I believe you are still relying on a trigger reverse setting of the IOLinc, no? This may get reset from time-to-time, such as power outages. Once reset, sensor ON will equal door closed.
stusviews Posted March 17, 2015 Posted March 17, 2015 Writing a program to overcome an easily correctable hardware problem seems to be overkill and a band-aid. Change the magnetic switch. This one is top-of-the-line: http://www.smarthome.com/seco-larm-sm-226l-3-magnetic-garage-door-contact-switch.html This on is bottom dollar: http://www.smarthome.com/seco-larm-sm-200q-wh-surface-mount-magnetic-contact-switch-normally-closed.html
Recommended Posts