jtdohert Posted December 20, 2018 Posted December 20, 2018 I am trying to understand the sequence of events so I can program accordingly to handle them. If I create the program below, if a person is detected at night, and after the first minute, no person is detected, but 5 minutes later a person is re-detected, will the "wait" timer reset? If not, does the subsequent event get dropped or queued?
oberkc Posted December 20, 2018 Posted December 20, 2018 I am drawing a blank on the "event person". (What is that?) Does it cycle between TRUE and FALSE? If so, the wait may be interrupted when changing to false and runs the ELSE path, leaving the lights on. I would also be concerned if sunrise interrupts the wait. Is this a nest doorbell or motion sensor?
jtdohert Posted December 20, 2018 Author Posted December 20, 2018 It is a nest outdoor cam, and one event is that it spotted a person true/false. Set up the node server yesterday, and if a person is detected, it sends a true for a short period of time (haven't determined how long yet). Essentially I am trying to mimic a new light with a build in motion sensor (only better, animals shouldn't set it off). I had mounted an Insteon Motion Sensor II 6 months ago, but v 4.x did not support it. When I tried testing it yesterday, the sensor went bad. Then I came across the new Nest functionality and thought why not try that as a motion sensor, but even better, since nest determines if the motion is a person.
oberkc Posted December 21, 2018 Posted December 21, 2018 Hopefully one of the node server people comes along and confirms. I suspect this condition acts as a "status", which means it would trigger the program any time the status changes (this is important). If so, this means that when the status changes from false-to-true, it would trigger a program evaluation and, if between sunset and sunrise, would evaluate as true, running the THEN clause. At this point, the only other triggering mechanism from the person sensor would be a change of status from true-to-false. When that happens during the wait period, the program would halt, re-evaluate, and run the ELSE action (and not turning off the light). Do you remember...when you added the condition, was it "status", "control", or something else?
oberkc Posted December 21, 2018 Posted December 21, 2018 If my assumptions prove true, I might be more inclined to write the program: if time is sunset to sunrise and person event is true then turn on lights else wait a few minutes turn off lights
jtdohert Posted December 21, 2018 Author Posted December 21, 2018 There is no else yet for this program. I don't think when the status changes to false that it halts the program. My first test last night resulted in detection and the light stayed on for 10 minutes. I will watch more closely tonight to see how long it takes Nest to send a False status after a True was sent (so the timeout period I guess).
oberkc Posted December 21, 2018 Posted December 21, 2018 Yes, it all depends on the length of time before false is sent. Yes, were this me, I would experiment to confirm how long this is, or whether it is configurable. I would also experiment to find out whether that thing sends additional "people true" commands during that time-out period and whether that retriggers the program (guessing not). Yes, I know your program does yet have an ELSE action. That was my suggestion for you, depending on how long is the time-out period of the motion sensor. If other cannot confirm some of this, you could certainly experiment to confirm. Does the people status ever turn false? How long does it take? Is your program status ever false during dark hours (check the ISY program listing)? Does the program ever get retriggered? Answers to these questions are important and would point to the correct course of action and could be determined with a little bit of experimentation. I wish I could help more, but I don't have the necessary hardware or node-server.
oberkc Posted December 21, 2018 Posted December 21, 2018 50 minutes ago, jtdohert said: My first test last night resulted in detection and the light stayed on for 10 minutes. This tends to suggest a couple of things to me. First, the motion sensor does not turn false in 10 minutes. Second, multiple passes of people also don't retrigger the program. Both of these could suggest a correct programmatic solution.
larryllix Posted December 21, 2018 Posted December 21, 2018 The else clause is necessary in this type of case. If the light is ever on when then the dark timeframe expires (sunrise) the Else section runs and if no code were there the lights would be left on all day
jtdohert Posted December 21, 2018 Author Posted December 21, 2018 So is what you are saying is that any new event cancels the current instance of the program running and re-tests the condition for a new instance execution?
larryllix Posted December 21, 2018 Posted December 21, 2018 6 minutes ago, jtdohert said: So is what you are saying is that any new event cancels the current instance of the program running and re-tests the condition for a new instance execution? Yes, always unless the program is (trigger) Disabled. The little checkbox is at the top right of each program box in Admin Console. With a caveat. Program lines keep running until the ISY O/S can get a chance to give other jobs a chance. This happens during Wait and Repeat lines.
jtdohert Posted December 21, 2018 Author Posted December 21, 2018 Excellent, that is one of the original inquiries I had. Now that I know each event cancels the currently running instance and starts a new instance, I can program accordingly. Now I just have to play around with the camera to see how nest sends the status update and how long it lasts before it times out (ie when the person leaves the view, or just x seconds after first detection of a person). Nest also must have a timeout period, because I don't get constant notifications if I'm working out in the yard.
larryllix Posted December 21, 2018 Posted December 21, 2018 ISY only detects and triggers programs on events. This means changes of state of a device. There is no "time out period". However the devices may have a "time-out period" and send a second event notification to ISY, which ISY programs can also detect as a trigger (Control/switched) as a filter (Status). In your first post the program you appear to be using status and statuses do not retrigger programs. Therefore you would only get one Porch Lights On with a person detected. You would require a looping query program of the cam status inside ISY. This is dependent on the cam algorithm, whether it's time-out is retriggerable with future events before timeout.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.