I’m rather new in making flows, but have experience of PLC-programming.
A difference that I have noticed is that a condition have to have a trigger(become a value or change). Rather often I want to have a condition that for example is IF ? is larger than ? then…, but instead I have use When ? is larger than ? then…. The difference will be that if the condition has already been met, then the condition will not go through.
Is there any way to make such conditions?
I have also noticed that if I have an AND-condition which will be fulfilled, but after a while looses the condition(the AND-condition is no longer fulfilled), the condition still continues to work.
For example I have a condition for a maximum time. If the condition is valid for 60 minutes it will stop the controlled device. IF temperature is larger than 30 degrees the FAN will start IF the FAN is ON AND the Temperature is less than 20 degrees the FAN will stop IF the Fan is ON AND the Temperature is more than 20 degrees it starts an DELAY for 60 minutes IF the DELAY reaches 60 minutes the FAN will stop, regardless what the temperature is
but I have noticed that even if the Temperature becomes less than 20 degrees before the DELAY reaches 60 minutes, the DELAY continues to count. The FAN will stop, but if the temperature reaches more than 30 degrees and starts the FAN again within the 60 minutes the FAN will be stopped when the DELAY reaches 60 minutes and it could be after 5 minutes after the FAN has been started again, depending how long it takes to reach 30 degrees again during the DELAY is counting.
I hope you understand what I mean. If the Flow loses its condition, I want the Flow/Condition to be interrupted.
Don’t use the built in delay for delays of more than a few seconds. Another flaw BUG when you use it for delays of (an) hour(s): it does not survive a Homey reboot: you then can end up with unfinished flows without warnings whatsoever;
And, as you’ve discovered: the delay isn’t interactive.
My preferred timer app is Chronograph;
It can start & continue a timer, start and replace a timer (reset & start again), pause and stop a timer. And it survives a Homey reboot.
This trigger card by Device
Capabilities is way more flexible compared to the built-in ones:
A WHEN is not a condition. In general one has to start a computer program. By a user interaction as in starting MS-Word or with a scedular like a Cronjob for a backup. So also a flow should be started too, it does not run all the time in a loop😉. That is the reason why a flow is started with a WHEN card. A condition is statical, as an event in a WHEN card is dynamically. It could be a condition which state has changed.
This should work, but only if the previous reported value was below 30 degrees.
It doesn’t trigger when the temperature changes from 31 to 32 degrees.
It’s just a regular thermostat functionality.
Same goes for
“IF temperature is less than 30 degrees the FAN will stop”