Tự động hóa với Rules và Timers trong Tasmota

Ờ phần này, chúng ta sẽ cùng tìm hiểu về Rules và Timers, hai tính năng cực kỳ mạnh mẽ của Tasmota giúp dễ dàng tự động hóa các hành động của thiết bị và giúp chúng trở nên thông minh hơn.

1. Rules trong Tasmota #

Rules là gì? #

Rules là các câu lệnh logic cho phép bạn tự động hóa các hành động dựa trên các sự kiện (events) hoặc điều kiện (conditions).

Rules cho phép bạn tạo các hành động phức tạp mà không cần lập trình.

Cú pháp Rules:

ON <event> DO <command> ENDON

<event>: Điều kiện để kích hoạt rule. Ví dụ: trạng thái relay thay đổi, giá trị cảm biến đạt ngưỡng được set.

<command>: Lệnh được thực hiện khi điều kiện xảy ra. Ví dụ: bật/tắt relay, gửi tin nhắn MQTT.

Các sự kiện phổ biến:

– POWER#STATE: Trạng thái relay thay đổi.

– SENSOR#Temperature: Giá trị nhiệt độ đọc được từ cảm biến.

– Button#STATE: Trạng thái button có thay đổi.

– Time#Minute: Phút hiện tại.

– MQTT#message: Tin nhắn MQTT được nhận.

Các hành động phổ biến:

– Power ON/OFF/TOGGLE: Bật/tắt/đảo trạng thái relay.

– Publish <topic>,<message>: Gửi tin nhắn MQTT.

– WebSend <host>,<path>: Gửi yêu cầu HTTP.

– Delay <thời gian (giây)>: Chờ một khoảng thời gian.

Ví dụ Rules:

Rule1 ON POWER1#STATE=1 DO POWER2 ON ENDON

Khi Relay1 bật, Relay2 cũng bật.

Rule2 ON SENSOR#Temperature>30 DO Publish mytopic,Hot! ENDON

Khi nhiệt độ vượt quá 30 độ C, gửi tin nhắn MQTT “Hot!”.

Rule3 ON Button1#STATE=1 DO Delay 10; POWER1 TOGGLE ENDON

Khi nhấn Button1, chờ 10 giây rồi đảo trạng thái Relay1.

2. Timers trong Tasmota #

Timers là gì?

– Timers cho phép bạn tự động hóa các hành động theo lịch trình.

– Timers cho phép bạn lên lịch cho các sự kiện xảy ra vào một thời gian cụ thể.

Cú pháp Timers:

Timer<x> <time>,<command>

<x>: Số thứ tự của timer. Tasmota hỗ trợ tối đa 16 timer được đánh số từ 1 đến 16.

<time>: Thời gian kích hoạt timer (HH:MM).

<command>: Hành động được thực hiện khi timer kích hoạt.

Ví dụ Timers:

Timer1 08:00,POWER1 ON

Bật Relay1 vào lúc 8:00 sáng.

Timer2 22:00,POWER1 OFF

Tắt Relay1 vào lúc 10:00 tối.

Timer3 */5,Publish mytopic,Tick

Gửi tin nhắn MQTT đến topic là myTopic, nội dung message là “Tick” mỗi 5 phút.

3. Kích hoạt và vô hiệu hóa Rules/Timers #

Rules:

Rule<x> <option>

Kích hoạt rule.

<x>: Số thứ tự của Rule. Tasmota hỗ trợ tối đa 3 Rule. Có thể gom nhiều điều kiện vào chung 1 Rule.

<option>: 0 – Tắt rule, 1 – Bật rule

Timers:

Timer<x> <option>

Timer<x> 1: Bật timer.

Timer<x> 0: Vô hiệu hóa timer.

4. Kết hợp Rules với Timers #

Bạn có thể kết hợp Timers với Rules để tạo ra các hành động có điều kiện và theo thời gian phức tạp hơn.

Ví dụ 1: Bật đèn vào buổi tối và tắt vào buổi sáng:

Sử dụng Timer để kích hoạt Rule vào thời gian cụ thể. Rule sẽ bật hoặc tắt relay tương ứng.

Timer1 18:00,Rule1 1 

Bật Rule1 vào 6 giờ tối.

Timer2 06:00,Rule2 1

Bật Rule2 vào 6 giờ sáng.

Rule1 ON Time#Minute DO POWER1 ON ENDON

Rule1 bật relay.

Rule2 ON Time#Minute DO POWER1 OFF ENDON

Rule2 tắt relay.

Ví dụ 2: Tưới cây tự động vào buổi sáng nếu độ ẩm thấp:

Sử dụng Timer để kích hoạt Rule vào buổi sáng. Rule sẽ kiểm tra độ ẩm và bật relay tưới cây nếu độ ẩm thấp.

Timer1 07:00,Rule1 1

Bật Rule1 vào 7 giờ sáng

Rule1 ON SENSOR#Humidity<50 DO POWER1 ON; Delay 600; POWER1 OFF ENDON

Rule1 kiểm tra độ ẩm và bật relay trong 10 phút nếu độ ẩm dưới 50%.

Ví dụ 3: Gửi thông báo qua MQTT mỗi giờ vào ban đêm:

Sử dụng Timer để kích hoạt Rule mỗi giờ. Rule sẽ kiểm tra thời gian và gửi thông báo MQTT nếu là ban đêm.

Timer1 */60,Rule1 1 

Bật Rule1 mỗi giờ.

Rule1 ON Time#Hour>22 OR Time#Hour<6 DO Publish thongbao,Ban dem! ENDON 

Rule1 kiểm tra giờ và gửi thông báo nếu là từ 10 giờ tối đến 6 giờ sáng.

Ví dụ 4: Bật quạt khi nhiệt độ cao, và chỉ trong khoảng thời gian nhất định trong ngày.

Timer1 09:00,Rule2 1

Bật rule 2 vào 9h sáng.

Timer2 17:00,Rule2 0

Tắt rule 2 vào 17h chiều.

Rule2 ON SENSOR#Temperature>30 DO Power1 ON ENDON 

Rule 2 bật quạt khi nhiệt độ trên 30 độ.

Rule2 ON SENSOR#Temperature<28 DO Power1 OFF ENDON

Rule 2 tắt quạt khi nhiệt độ dưới 28 độ.