This object is in archive! 

I need more explanation for Join, Stop and Refersh All blocks

Abdalrahman Hassanine shared this question 6 years ago

I tried to use these blocks in my rules but I didn't fully understand their functions and when I should use them.

Replies (4)



This is what I know about these puzzles;

JOIN - This block will allow the rule to use the changing states of a sensor (in case it changes before or while the rule is being executed). Example; if you want to turn OFF a bulb when one door is closed for more than 5 mins. If you dont use a JOIN statement between the conditional block (IF, IF - THEN) and the wait, the bulb will go OFF regardless if you closed the door and opened 5 times during those 5 minutes. In other words, the JOIN statement will "Reset" your timer every time the door is not closed.

STOP - This is similar than a "return" command in some programing languages. This is used when you want to stop the execution of a rule before it reaches the end of itself. Let's say you want to check different states of a meter and then do something different with 5 different cases and then exit the rule. Let's say the first condition is true and you want for example, turn off your AC unit. STOP will make the controller turn OFF the AC and not even check the other 4 conditions after it. This is not required in most cases of rules. I would say its useful when you are trying to do something like a SELECT CASE instruction like in (VB).

REFRESH ALL - Will make the controller request an update of states for the devices included in that rule.


This is an example for the usage of JOIN. This is a motion activated bulb, which goes OFF after the NO MOTION timer expires.


Here you can find the same example with a REFRESH ALL, I do this in this case because I use different multisensor and noticed that without it the rule does not work but after the first motion was detected. I'm pretty sure this is due the way this device works and it's configured, it sends the update of lumination sensor at the same time the MOTION / NO MOTION event is sent to the controller. This way it works since the first time.


Thank you Alberto,

I appreciate your help.

Leave a Comment
Attach a file