CC2531 + zigbee2mqtt = Zigbee gateway

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 :

 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

Xem ở đây

Comments Off on CC2531 + zigbee2mqtt = Zigbee gateway

Filed under Software

Comments are closed.