Các thiết bị nhà thông minh có thể có kết nối wifi, bluetooth… hoặc Zigbee. Các kết nối Zigbee thông thường phải qua Zigbee gateway, thí dụ như Xiaomi gateway.
Dùng CC2531 với firmware Z-Stack có thể thay thế cho Zigbee gateway của hãng sản xuất thiết bị, tránh những phiền toái như phải qua server của hãng…
zigbee2mqtt là một add-on trên HASS, có thể kết hợp với CC2531 để thu phát sóng zigbee và chuyển thành lệnh mqtt. Tuy nhiên không phải các thiết bị nào dùng kết nối Zigbee cũng có thể kết nối được với CC2531. Trong trường hợp thiết bị pair được với CC2531, ta có thể dùng mqtt để điều khiển thiết bị dể dàng như nhiều thiết bị có wifi khác.
Phần tiếp theo chúng ta bàn về cài đặt Zigbee2Mqtt và add-on cần thiết khác trên HASS.
- Cài đặt Zigbee2Mqtt
- Add-on Zigbee Map
- Add-on Zigbee2MqttAssistant
- Pair thiết bị với Zigbee2Mqtt
- Flash CC2531
1. Cài đặt zigbee2mqtt
Cài đặt như một add-on của HASS
- Hass.io
- Add-on Store
- Add New Repository by URL https://github.com/danielwelch/hassio-zigbee2mqtt
- Add
- Cài đặt
Zigbee2Mqtt
- Cấu hình: mqtt IP, user, password
Phần lớn cấu hình còn lại để mặc định, hoặc có thể cấu hình chi tiết hơn, xem ở đây.
Ngoài ra còn phải cấu hình configuration.yaml, lovelace.yaml theo hướng dẫn (copy/paste) sau đó khởi động lại HASS (Tuy nhiên, nếu dự định cài add-on Zigbee2MqttAssistant thì bỏ qua tất cả).
Chi tiết gồm 3 bước như bên dưới:
A. Thêm vào configuration.yaml
mqtt:
broker: core-mosquitto # IP của MQTT server
discovery: true
# Nút cho phép join thiết bị mới
input_boolean:
zigbee_permit_join:
name: Allow devices to join
initial: off
icon: mdi:cellphone-wireless
# Cho phép chờ join thiết bị trong 10 phút
timer:
zigbee_permit_join:
name: Time remaining
duration: 600
# Tình trạng CC2531 gateway
sensor:
- platform: mqtt
name: Bridge state
state_topic: "zigbee2mqtt/bridge/state"
icon: mdi:router-wireless
B. Thêm vào automation.yaml
- id: enable_zigbee_join
alias: Enable Zigbee joining
hide_entity: true
trigger:
platform: state
entity_id: input_boolean.zigbee_permit_join
to: 'on'
action:
- service: mqtt.publish
data:
topic: zigbee2mqtt/bridge/config/permit_join
payload: 'true'
- service: timer.start
data:
entity_id: timer.zigbee_permit_join
- id: disable_zigbee_join
alias: Disable Zigbee joining
trigger:
- entity_id: input_boolean.zigbee_permit_join
platform: state
to: 'off'
action:
- data:
payload: 'false'
topic: zigbee2mqtt/bridge/config/permit_join
service: mqtt.publish
- data:
entity_id: timer.zigbee_permit_join
service: timer.cancel
hide_entity: true
- id: disable_zigbee_join_timer
alias: Disable Zigbee joining by timer
hide_entity: true
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.zigbee_permit_join
action:
- service: mqtt.publish
data:
topic: zigbee2mqtt/bridge/config/permit_join
payload: 'false'
- service: input_boolean.turn_off
data:
entity_id: input_boolean.zigbee_permit_join
C. Thêm vào giao diện Lovelace (Open Lovelace Menu – Configure UI – Raw Config Editor Hoặc tạo card kiểu entities như thông thường)
- type: entities
entities:
- entity: input_boolean.zigbee_permit_join
- entity: timer.zigbee_permit_join
- entity: sensor.bridge_state
show_header_toggle: false
2. Cài đặt một trong hai add-on tiện ích sau đây:
+ Add-on Zigbee Map: Vẽ bản đồ mạng Zigbee
Add-on này phải cài đặt thủ công nhưng đơn giản nhờ phần chuẩn bị bên trên :
- Tải về https://github.com/rgruebel/ha_zigbee2mqtt_networkmap
- Copy “custom_components/zigbee2mqtt_networkmap” vào thư mục con “custom_components” của thư mục cấu hình.
- Thêm vào configuration.yaml
webhook:
zigbee2mqtt_networkmap:
#topic: your topic (optional, default zigbee2mqtt)
panel_iframe:
networkmap:
title: 'Zigbee Map'
url: '/local/community/zigbee2mqtt_networkmap/map.html'
icon: 'mdi:graphql'
- Khởi động lại HASS
- Chạy thử: Developer Tools – Services – “zigbee2mqtt_networkmap.update”
- Nếu thành công, thêm vào automation.yaml
- id: update_networkmap
alias: 'Zigbee Map aktualisieren'
hide_entity: true
trigger:
platform: time_pattern
minutes: '/10'
seconds: 00
action:
service: zigbee2mqtt_networkmap.update
+ Add-on Zigbee2MqttAssistant: Giao diện Web của Zigbee2Mqtt.
Có thể vẽ bản đồ mạng Zigbee, hiển thị các thiết bị và trạng thái của chúng, cho phép kết nối với mạng, đổi tên thiết bị, gở bỏ thiết bị, liên kết với thiết bị khác…
Cài đặt đơn giản, nhiều tính năng, nhưng nhận diện tên thiết bị không chính xác như Zigbee Map. Một vài tính năng còn lỗi!
Có thể cài như một addon của HASS
- Hass.io
- Add-on Store
- Add New Repository by URL
https://github.com/yllibed/hassio
- Add
- Cài đặt
Zigbee2MqttAssistant
- Cấu hình: mqtt IP, user, password
3. Pair thiết bị với zigbee2mqtt
Danh sách các thiết bị tương thích và cách pair với Zigbee2Mqtt xem ở đây.
Nguyên tắc chung là
- Bật Allow devices to join. Nếu dùng add-on Zigbee2MqttAssistant thì vào tab Status, bấm nút ALLOW NEW DEVICES TO JOIN NETWORK.
- Bấm và giữ nút reset của thiết bị 5 đến 10 giây
Chú thích: Trong trường hợp không cài cả hai add-on ở trên, có thể “Cho phép thiết bị kết nối” bằng cách chạy dịch vụ (Developer Tools – Services)
service: mqtt.publish topic: zigbee2mqtt/bridge/config/permit_join payload: true
Nếu thiết bị tương thích sẽ được add vào HASS dễ dàng. Trường hợp thiết bị kết nối chậm thì phải bấm nút trên thiết bị (nếu có) 1-2 giây một lần để thiết bị không vào trạng thái ngủ.
Vào Hass.io – zigbee2mqtt xem phần Log bên dưới để biết thiết bị đã kết nối hay chưa!
Ngoài ra, nhiều thiết bị không có trong danh sách cũng có thể add nếu thiết bị và CC2531 có thể kết nối qua Zigbee. Xem ở đây.
4. Flash CC2531