I have a challenge with a ST automation that does not work as intended. Its a strange one that I cannot see a way to fix.
My aim is to turn on the outside light when the Nest Hello detects motion abd then turn it off after a set period (3 mins). This uses an if statement on the Nest Hello when detecting motion.
The problem is that it becomes a never ending loop of light on and off every 3 minutes. The act of the light turning off is actually detected by the Nest Hello as motion so the light comes back on again immediately. Hence a never ending cycle of light on for 3 minutes, off, on again…
I cant think of any other logic in the automation to get around this. The obvious answer would be if the Nest Hello allowed a different parameter (ideally “person” but it does not offer this type of detection, which is strange because the Nest App itself differenciates between motion and person.
So its a bit of a logic challenge if anyone has any ideas.
You can use one of the more complex rules engines available for smartthings and limit the automation to running once every four minutes, for example, and that would solve the problem you have right now.
Some of the options for this are paid third-party apps with nice interfaces and pretty easy set up. Others like Webcore are free but are more complicated to get started with.
The following FAQ discusses the options:
To be honest, I’m not sure if there’s a way to do it with the official features now, the current app is not easily voice navigable so I don’t know that much about it. Hopefully others will chime in if there’s a similar feature there.
But the general approach would be the same in all cases: just create a rule that only runs once every four minutes and then it will ignore the light turning off again as a trigger.
Thanks. I have just started to tinker with Webcore but in this case its of no use.
Nest devices although now supported in ST do not show up in the IDE and as a result dont seem to be available for use by Webcore.
But thanks for the tip on the logic.
Yeah, you would probably have to use a virtual switch as a proxy and have Webcore respond to the virtual switch, which is clunky, but would probably work. You can ask in the web core form, I’m sure somebody there has already figured it out.
The more I have looked at this, the more I am convinced there is a flaw in the device handling.
When creating the IF statement in the automation to check if the Nest Hello has detected motion, there is also a further setting available. This allows you to define the motion duration period. I have set mine differently as zero and antyhing between 3 and 10 seconds.
In other words the automation would be triggered, turning the light on, only if motion is detected for a period of a few seconds. This feature specifically should mean that the motion created by the light turning off (probably 1 second or so) should not be detected, but it is!
This cannot be working properly, it seems to be taking no notice of this “motion duration” setting. In theory this setting should be able to fix my automation problem.