Trong thí dụ này, nếu Button1 được bật thì sau 30 giây sẽ tự tắt (thí dụ đèn cầu thang)
Rule trong Tasmota có dạng
on <trigger> do <command> {endon | break}
được gõ trực tiếp vào dòng lệnh console trong Web UI của Tasmota.
Rule1 On button1#state Do backlog Power1 %value%; RuleTimer1 30 EndOn On Rules#Timer=1 Do Power1 off EndOn Rule1 1
- button1#state: button1 thay đổi trạng thái
- RuleTimer1 30: bật countdown thứ nhất đếm lùi 30 giây
- Rules#Timer=1: countdown thứ nhất đếm xong
- Rule1 1: áp dụng Rule1
Câu lệnh sau đây có kết quả tương tự (*) như trên
Rule1 On Button1#State Do backlog Power1 %value%; Delay 300; Power1 Off EndOn
Input Button1#State luôn có giá trị 2 (toggle On/Off), cho dù On hay Off, vì vậy câu lệnh trên được gọi 2 lần khi Power On và Power Off.
Có lẽ tốt hơn là kiểm soát output Power1#State như sau
Rule1 On Power1#State=1 Do backlog Delay 300; Power1 Off EndOn
(*) Tuy nhiên, giả sử ta bấm power on, rule1 đang thực hiện delay 300, ta bấm off rồi on, rule1 lại được gọi nhưng delay 300 đang thi hành nên bị bỏ qua và lệnh power off được thi hành, kết quả là trong 30 giây ta không thể bật công tắc lên được. Khi dùng countdown, dù chính thread timer đó có thể bị gọi lập lại cũng chỉ là countdown lại mà thôi chứ chưa đến lúc thi hành power off.
Rule1 On Power1#State=1 Do RuleTimer1 30 EndOn On Rules#Timer=1 Do Power1 off EndOn
Chú thích
- Trigger button1#state hay switch1#state chỉ áp dụng khi nút bấm vật lý được bật. Trigger power1#state áp dụng cho cả khi bật bằng MTQ
- Vì sonoff basic chỉ có một nút nên có thể dùng power thay cho power1
- RuleTimer được tính bằng giây, trong khi Delay tính bằng 0.1 giây
- Rule càng ngắn gọn càng tốt vì chỉ có 3 buffer (3 x 511B) để chứa các rule.