Rule to trigger only once on a certain time

Pablo shared this question 1 year ago
Need Answer

Hello,


I am trying to include on my Zipato an existing intercom for the entrance door. I have added a Fibaro multisensor to it for that purpose, which is detecting properly the existing call signal needed. What I want is to send a push message when someone calls.


My problem is that this intercom sends activation signals not once, but several times each time someone calls (the signal goes OFF->ON->OFF->ON... several times). So I am receiving more that one push message for each call.


I am trying to build a rule to take in account only the first activation and ignore the rest for certain time 120 seconds). But the rule is not working properly and several messages are sent.


Could someone help??


Thanks!!

Comments (14)

photo
1

I am at work, so I cannot try it. But maybe something like this could work:


  1. DOOR SIGNAL ON
  2. JOIN
  3. IF {variable = 0}
  4. SEND MESSAGE
  5. SET variable to 1
  6. ELSE
  7. WAIT 120 seconds
  8. SET variable to 0

photo
2
  1. DOOR SIGNAL ANY
  2. JOIN
  3. IF
  4. DOOR SIGNAL ON
  5. IF inside IF for item 3 {variable = 0}
  6. SEND MESSAGE
  7. SET variable to 1
  8. ELSE
  9. WAIT 120 seconds
  10. SET variable to 0

photo
1

Attilas got it again. You need the "any" state first.

this will alow the rule to trigger again when the sensor goes off the first time, the "join" block will "lock" the rule from triggering again until the time has elapsed from the "else" block.

Hope this makes sense.

photo
1

Thank you guys!! I will redo the rule and tell you how it works.


Question: When the DOOR = ON for the first time, how do I ensure variable is 0? For me it looks like message will not be sent until first 120 secs... Or not? Thanks for your explanations

photo
1

Whenever the rule is executed the last time, if the variable was 0, the message will be sent. If variable was 1, the message will not be sent.

If the rule executed after you received a message, it will set the variable to 0 after 120 seconds of no activity regardless if the rule was executed numerous times after message was sent. It will be reset to 0 at last execution.

Just give it a try and you'll see.

photo
1

Hello all,


I tried programming the rule but still don't work:


5e08fa8ab1ad785ec2a8decbf5e59b68


Do you see something wrong?


Thanks for your help

photo
1

By the way: sorry it is in spanish. Any way to change language to english? Thanks!

photo
1

At the top of the control center is the language setting (in the green bar).

photo
1

Pablo, try something like this.


Saludos!

photo
2

Alberto, Jan, thanks. I have tried but messages still comming more than once. Looks like it ignores the wait or the variable value. See attached.

photo
photo
1

Try recreating a new rule from scratch using new variable

photo
1

Attila, thanks but no luck here. I still think something on the rule creator is not working: variables or wait.


82a3e869806bf32531e58e02cd9c6ebc


I have also tried with virtual switch, but rule is not changing the switch status...


d0170ed89b782820435738b022653de7


Are you guys working with something similar?

photo
1

Pablo, Im afraid you will have to raise a ticket with support. After our recommendation of a rule is not working, than it is an issue for zipato to fix.

photo
1

I have raised a ticket. Anyhow thanks everybody for trying it!

photo