Zigbee2MQTTを利用してHome AssistantにZigbeeデバイスを統合

Zigbee2MQTTを利用してHome AssistantにZigbeeデバイスを統合

前回の記事でHome Assistant Supervisedをインストールしました。今回はSupervisedの機能の一つ、アドオンを使ってZigbeeデバイスを統合します。

Raspberry PiにHome Assistantをインストール
我が家ではHome Assistantを使ってスマートホームを構築しています。Home Assistantはインテグレーションやプラグインが充実しているので、たいていのメーカーのデバイスを統合して管理できるのが便利です。 最近Raspberry Pi 4の環境を更新したのを機に、新たにHome Assistantをインストールし直したので、手順をご紹介します。 Home AssistantOpen source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.Home AssistantHome Assistant インストール方法の選択 Home Assistantのインストール方法は以下の4つがあります。

Zigbeeについて

Zigbeeは低電力・低遅延の無線通信規格で、メッシュネットワーク(各デバイスが信号を中継してくれるので広範囲で利用できる)にも対応とIoTデバイスに向いているので、Philips Hueをはじめ多くのメーカーに採用されています。しかしオープンな規格でありながら、基本的には各メーカーが用意するハブやアプリを用意しなければいけません。
Home AssistantではUSB接続のZigbeeドングルが一つあれば各メーカーのデバイスを統合することができます。

SONOFF Zigbee 3.0 USB Dongle Plus-P - SONOFF Official
Zigbee 3.0 USB Dongle Plus is a product that can manage Zigbee end devices and access to home assistant to create a smart home.

こちらのドングルは新型のZBDongle-Eと旧型ZBDongle-Pがありますが、旧型の方が推奨されているみたいです。

Supported Adapters | Zigbee2MQTT
Zigbee to MQTT bridge, get rid of your proprietary Zigbee bridges

Home AssistantにZigbeeデバイスを統合する方法

Home AssistantにZigbeeデバイスを統合するにあたって、Zigbee Home Automation (ZHA) を利用する方法とZigbee2MQTTを利用する方法の2つがあります。それぞれの特徴はこんな感じ。

  • Zigbee Home Automation (ZHA)
    • ZigbeeデバイスをHome Assistantに直接統合
    • 設定・管理が簡単
  • Zigbee2MQTT
    • 対応デバイスが多く、新しいデバイスのサポートが比較的早い
    • ZigbeeデバイスとHome AssistantをMQTTというプロトコルを介して統合
      • Zigbeeデバイス ↔︎ Zigbee2MQTT ↔︎ MQTTブローカー ↔︎ Home Assistantというイメージ
    • 設定・構成が複雑(その代わりカスタマイズ性が高い)

ZHAの方が簡単でシンプルな構成になるのですが、経験上Zigbee2MQTTじゃないと使えないデバイスがあったりします。そうすると結局ZHAだけでは完結せずにZigbee2MQTTも必要になってくるので、はじめからZigbee2MQTTを採用します。

Mosquitto brokerのインストール

Zigbee2MQTTをインストールする前に、Mosquitto brokerというMQTTブローカーをインストールします。Zigbee2MQTTとHome Assistantを繋ぐサーバーのような位置付けです。
Home Assistantの設定からアドオンを選択し、右下の「アドオンストア」をクリックします。

Mosquitto brokerを検索。

image

インストールをクリック。

image

インストールが完了したら、開始をクリック。

image

無事に立ち上がりました。ユーザー名やパスワードを設定することもできますが、Home Assistant内でMQTTにアクセスする場合は不要なのでそのままにしておきます。

image

MQTTインテグレーションの追加

MQTTブローカー(サーバー)が立ち上がったので、Home AssistantとMQTTブローカーを繋ぐ準備をします。設定から「デバイスとサービス」を選択すると「MQTT」の項目が出てきていると思うので設定をクリックします。

送信。

完了。かんたんです。

追加されたMQTTインテグレーションを開くと、先ほどインストールしたMosquitto brokerがエントリーとして認識されていることが確認できます。

Zigbeeドングルのパスの確認

USB Zigbeeドングルを接続して dmesgコマンドでカーネル出力すると、以下のようにUSBデバイスの情報が確認できます。

$ dmesg
[  312.272886] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd
[  312.378342] usb 1-1.4: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[  312.378377] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  312.378392] usb 1-1.4: Product: Sonoff Zigbee 3.0 USB Dongle Plus
[  312.378404] usb 1-1.4: Manufacturer: Silicon Labs
[  312.378416] usb 1-1.4: SerialNumber: 0001
[  312.532723] usbcore: registered new interface driver usbserial_generic
[  312.532960] usbserial: USB Serial support registered for generic
[  312.536662] usbcore: registered new interface driver cp210x
[  312.537005] usbserial: USB Serial support registered for cp210x
[  312.537111] cp210x 1-1.4:1.0: cp210x converter detected
[  312.545546] usb 1-1.4: cp210x converter now attached to ttyUSB0

パスは /dev/ttyUSB0 ですね。ただ公式のドキュメントによると /dev/tty* 以下のパスは変わることがあるため、可能であれば/dev/serial/by-id/ 以下のパスを指定するのが良いそうです。

Adapter settings | Zigbee2MQTT
Zigbee to MQTT bridge, get rid of your proprietary Zigbee bridges

確認したところ、IDのパスを取得できました。こちらを指定するのが良さそうです。

$ ls /dev/serial/by-id/*
/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0

Zigbee2MQTTのインストール

アドオンストアを再度表示し、右上のメニューからリポジトリを選択します。

リポジトリのURL https://github.com/zigbee2mqtt/hassio-zigbee2mqtt を入力し、追加をクリックします。

追加できたらダイアログを閉じます。

Zigbee2MQTTを検索し、「Zigbee2MQTT」を選択します。

インストール。

インストール後すぐに開始せず、設定タブを開きます。

serialの欄に port: 先ほど確認したドングルのパス を入力して保存します。IDが取得できなかった場合は port: /dev/ttyUSB0 のように指定すれば良いはずです。

情報タブに戻って開始します。サイドバーに表示をオンにしておきましょう。

ログを開いて、MQTTサーバーに接続したこととZigbee2MQTTが開始されたことを確認します。

サイドバーからZigbee2MQTTの画面を開いたところです。この画面でZigbeeデバイスとのペアリングや設定などを行なっていきます。

長くなってきたので、ペアリング作業は別の記事でご紹介していきます。

Zigbee2MQTTにデバイスをペアリング
前回の記事でZigbee2MQTTのセットアップが完了したので、引き続きZigbeeデバイスのペアリングをやっていきます。 Zigbee2MQTTを利用してHome AssistantにZigbeeデバイスを統合前回の記事でHome Assistant Supervisedをインストールしました。今回はSupervisedの機能の一つ、アドオンを使ってZigbeeデバイスを統合します。 Raspberry PiにHome Assistantをインストール我が家ではHome Assistantを使ってスマートホームを構築しています。Home Assistantはインテグレーションやプラグインが充実しているので、たいていのメーカーのデバイスを統合して管理できるのが便利です。 最近Raspberry Pi 4の環境を更新したのを機に、新たにHome Assistantをインストールし直したので、手順をご紹介します。 Home AssistantOpen source home automation that puts local control and privacy first. Pow