The rule should run when motion in the room occurs (using the Zone Motion Controller), or my Hue button is pushed, or 1 minute has passed.
The rule appears to ignore the 1 minute trigger. I'm stumped, and run the rule manually. Everything runs as expected.
Could we see the rule? What triggers the start of the 1 minute?
I tried a cut and paste of the triggers, but I must be doing it wrong :-).
The Rule trigger says "every 1 minute" so I assume the trigger occurs every 60 seconds.
I tried using a pic of the rule. I added the illuminance trigger, but I'm not sure I want the rule to be run that often
The every minute and the pushbutton and illuminance are unnecessary as it will only do anything on your conditions. Which is just the living room motion sensor.
This rule is fairly straightforward despite the complexity. When motion is sensed in the room, turn on the lights.
1st complexity, the the time of day. At night, the room light should be 5%.
2nd complexity is the amount of light sensed outside. If the light is bright, my solar tubes will do the job of lighting the room.
My problem starts when the light dims (clouds etc). So, I needed the rule to run more often than just the Zone Motion Controller timing out.
Shouldn't the OR condition allow the rule to fire if ANY of the triggers is true?
Yes but the condition is what it does after the rule fires. It does something when the sensor is active and something else when the sensor is inactive. The rule will fire anytime the sensor changes, so what good does it do to push a button.
Thanks so much for the screenshot. That makes it much clearer what you are trying to do. A screenshot is the preferred way to show a rule.
A couple of comments.
First, don’t have illuminance changed as a trigger because that will be changing very often, especially as clouds go overhead momentarily. Your “every minute” trigger effectively makes this just a polling rule, so, at least, delete the illuminance trigger.
Second, each of your ELSE-IF actions, which always evaluate the NOT of the corresponding IF, could just be ELSE without any condition evaluation, with the same result. To me, it makes the resulting code much clearer (and faster, and less load on the CPU). ELSE-IF is more appropriate if you have three or more alternatives, and the last one is always simply an ELSE.
Now to the merits. Why do you say that the every minute trigger isn’t getting executed? Here’s a suggestion for debugging: take out the illuminance trigger, use a spare light switch, insert these 4 debugging lines at the start of the rule to show you when the rule is triggered:
Now you will see that debugging light change state each time the rule is triggered.
This may give you an insight into whether the 1 minute trigger is working. I believe that it is.
Edit: Also, bear in mind that you can have multiple copies of the rule running simultaneously. Each time a trigger event happens, a new thread starts running the rule, regardless whether the previous triggered thread has finished. So, you might have multiple copies of the rule running simultaneously, each triggered by a change in illuminance. Ponder a bit on the concurrency issues.