Điều khiển thiết bị Remote IR sử dụng Tasmota MQTT, Hass
Sử dụng thiết bị điều khiển hồng ngoại IR fw Tasmota MQTT để nhận và gửi mã IR của các Remote hồng ngoại IR. Với IR Tasmota, bạn có thể sử dụng IRHVAC để gửi IR code có sẵn của nhiều hãng thông dụng mà không cần phải lấy mã code từng nút:
IRHVAC {“Vendor”:”Mitsubishi_Heavy_152″, “Power”:”On”,”Mode”:”Hot”,”FanSpeed”:3,”Temp”:22.5}
Có thể làm đồng bộ phản hồi 2 chiều trên Hass cho các thiết bị thông dụng ( xem hướng dẫn bên dưới nhé )
Cài đặt điều khiển Remote:
1.> Bạn cần thiết bị hồng ngoại IR đã flash Tasmota. Vui lòng tham khảo sản phẩm tại đây.
2.> Sau khi kết nối wifi cho thiết bị, bạn vào Tasmota của thiết bị, cấu hình MQTT cho thiết bị, lưu lại mqtt topic.
3.> Bạn vào Console của Tasmota, bấm nút trên Remote vào thiết bị hồng ngoại IR để nhận IR code.
+ Nếu thiết bị hồng ngoại IR nhận biết Remote thông dụng thì sẽ hiện như sau:
{“IrReceived”:{“Protocol”:”LG2″,”Bits”:28,”Data”:”0x8800E0E”,”DataLSB”:”0x10017070″,”Repeat”:0,“IRHVAC“:{“Vendor”:”LG”,”Model”:2,”Mode”:”Cool”,”Power”:”On”,”Celsius”:”On”,”Temp”:29,”FanSpeed”:”Min”,”SwingV”:”Off”,”SwingH”:”Off”,”Quiet”:”Off”,”Turbo”:”Off”,”Econo”:”Off”,”Light”:”Off”,”Filter”:”Off”,”Clean”:”Off”,”Beep”:”Off”,”Sleep”:-1},”RawData”:”+3350-9830+530-1545+540-500+535fG-520+510-1550Ih+515hIhIhIhIhIcIhIhIhIhIjI-1540G-1555KhIfGhIhIhI-1560IjInKhI”,”RawDataInfo”:[59,59,0]}}
+ Nếu thiết bị hồng ngoại IR KHÔNG nhận biết Remote thì sẽ hiện như sau:
{“IrReceived”:{“Protocol”:”UNKNOWN“,”Bits”:48,”Hash”:”0xBBB0D338″,”Repeat”:0,”RawData”:”+645-1875+650b+1910-610DeCbCbDeDeCbDeCbD-615DeCbCbCbCbDfC-1850+1935eDeCbCbC-21200+670bCbDfDeCbCbDeDfCbDfCbDfDeC-1870CbCbCbDeAgHfDfAbCbC”,”RawDataInfo”:[95,95,0]}}
4.> Cấu hình switch yaml cho thiết bị IR trên Hass:
+ Trường hợp thiết bị hồng ngoại IR nhận biết Remote thông dụng:
Cách 1:
mqtt:
switch:
- name: "irlg_bed_power"
command_topic: "cmnd/mqtt_topic/IRSEND"
payload_on: '{"Protocol":"LG2","Bits":28,"Data":"0x8800E0E","DataLSB":"0x10017070","Repeat":0"}'
payload_off: '{"Protocol":"LG2","Bits":28,"Data":"0x88C0051","DataLSB":"0x1031008A","Repeat":0}'
qos: 1
Cách 2: sử dụng lệnh IRHVAC
mqtt:
switch:
- name: "irlg_bed_power"
command_topic: "cmnd/mqtt_topic/IRHVAC"
payload_on: '{"Vendor":"LG","Model":2,"Mode":"Cool","Power":"On","Celsius":"On","Temp":29,"FanSpeed":"Min","SwingV":"Off","SwingH":"Off","Quiet":"Off","Turbo":"Off","Econo":"Off","Light":"Off","Filter":"Off","Clean":"Off","Beep":"Off","Sleep":-1}'
payload_off: '{"Vendor":"LG","Model":2,"Mode":"Cool","Power":"Off"}'
qos: 1
==> Với cách 2, bạn tham khảo thêm IRHVAC ,sau đó thay đổi các giá trị tương ứng mà không cần phải lấy mã từng nút.
Cách 3: sử dụng custom component Tasmota-IRHVAC cho máy lạnh
– Copy custom component Tasmota-IRHVAC vào thư mục config/custom_component của Hass. Không cần flash firmware Tasmota-IRHVAC, có thể dùng firmware Tasmota-IR.
– Xem ví dụ cấu hình climate yaml tại đây. Component Tasmota-IRHVAC bao gồm gửi và nhận phản hồi từ máy lạnh.
– Cập nhật các thông số sau, các thông số khác tùy thuộc vào máy lạnh của bạn:
command_topic: “cmnd/mqtt_topic/IRHVAC”
state_topic: “tele/mqtt_topic/RESULT”
vendor: “LG2” ## => loại máy lạnh nhà bạn.
hvac_model: “2” ## model máy lạnh
– Restart lại Hass.
######################################
+ Trường hợp thiết bị hồng ngoại IR KHÔNG nhận biết Remote thông dụng thì bạn sử dụng RawData của IR code, thêm “0,” vào trước RawData :
mqtt:
switch:
- name: "ir_labfan_swing"
command_topic: "cmnd/mqtt_topic/IRSEND"
payload_on: "0,+640-1905+620b+1880cBaCbCbD-645DaDaDaDeCb+670-1850CbCbDaDe+1855fDaCbCbCbCbD-19975EbCbDaDaCbCbDaDaDaDaDeCbCbCbCbDaDaHfDaC-1900CbCbCbD"
payload_off: "0,+645-1905+620b+1880-640DeCbCbDeDeDeDeC-1900DeCbCbDe+590-1930DeDeCbDeCbCbDeC-21230AfCbDeDeCfCbDeDeDeDeCbDeCfCb+1935gCbDeDeCbDeCb+670-1830BeC"
qos: 1
5.> Reload lại thực thể MQTT hoặc khởi động lại Hass.
Cài đặt nhận phản hồi 2 chiều:
Bạn tạo mqtt sensor để nhận trạng thái khi nhấn trên remote và nhấn trên IR tasmota:
mqtt: sensor: - name: "LG2_IR" state_topic: '+/mqtt_topic/RESULT' value_template: >- {% if value_json['IrReceived'] | regex_search(find='DataLSB', ignorecase=False) %} {{ value_json['IrReceived']['DataLSB'] }} {% else %} {% if value_json['IRHVAC'] | regex_search(find='Vendor', ignorecase=False) %} {{ value_json['IRHVAC']['Vendor'] }} {% else %} {{ states('sensor.LG2_IR') }} {% endif %} {% endif %} json_attributes_topic: "+/mqtt_topic/RESULT" json_attributes_template: >- {% if value_json['IrReceived'] | regex_search(find='DataLSB', ignorecase=False) %} {{ value_json['IrReceived']['IRHVAC'] | to_json }} {% else %} {% if value_json['IRHVAC'] | regex_search(find='Vendor', ignorecase=False) %} {{ value_json['IRHVAC'] | to_json }} {% else %} {{ state_attr('sensor.LG2_IR') }} {% endif %} {% endif %}
Sau khi tạo mqtt sensor, bạn sẽ có thực thể sensor.LG2_IR như bên dưới:
Đến đây, bạn muốn lấy thông tin nào thì làm template cho nó:
template: - sensor: - name: lg2_ir Power state: "{{ state_attr('sensor.lg2_ir', 'Power') }}" - name: lg2_ir Mode state: "{{ state_attr('sensor.lg2_ir', 'Mode') }}" - name: lg2_ir Temp state: "{{ state_attr('sensor.lg2_ir', 'Temp') }}" - name: lg2_ir FanSpeed state: "{{ state_attr('sensor.lg2_ir', 'FanSpeed') }}" - name: lg2_ir SwingV state: "{{ state_attr('sensor.lg2_ir', 'SwingV') }}" - name: lg2_ir SwingH state: "{{ state_attr('sensor.lg2_ir', 'SwingH') }}"
Chúc bạn thành công nhé!
BÀI VIẾT MỚI
DANH MỤC
- english (2)
- hass (25)
- hass_component (13)
- hass_install (4)
- NodeRed (5)
- noha (8)
- Other (10)
- sonoff (9)
- Tuya (1)