スマホで操作できる鍵やリモコン・照明・スイッチ・コンセントなどのIoT機器は便利ですが、各メーカーのアプリで操作しないと使えない。という縛りがあります。
これを開放して1つのシステムで操作できるようにするのがHome Assistantで、今回紹介するZigbeeを使うとほとんどのIoT機器を操作できるようになります。
ただ、まだ縛りがあって、日本独自のIoT機器や海外で普及していない機器はHome Assistantでも完全に操作できるようにはならない。
Zigbee機器に接続する方法
Home Assistantでは、ZHA(Zigbee ホーム オートメーション)と、Zigbee2MQTTの2つの方法でZigbee機器に接続できます。
ここでZHAかZigbee2MQTTのどちらかを選ぶ必要がありますので簡単に説明していきます。
Zigbee2MQTTとZHA
Zigbeeは本来ならば以下(IKEA)のように電球やスピーカーなどのZigbee機器のほかに、ハブ(ゲートウェイ)が必要になりますが、ZigbeeドングルとコンピュータにインストールしたHomeAssistant(Mosquitto broker+Zigbee2MQTT)ではほとんどのメーカーのゲートウェイの代わりにできます。

ZHAのほうは↓Zigbee Allianceが認定したデバイスやブリッジに限られるが使用可能で、Zigbee Allianceが認定していないメーカーのZigbee機器は別途ハブが必要になります。

一方でZigbee2MQTTを使うとほとんどのZigbee機器がハブ無しで接続することができて便利。

ZHA=ZigBee Home Automationの特徴
ZHAはHome Assistantの設定はほぼ必要なく、すぐにZigbee機器をペアリングできるのが一番の特徴。
- Zigbee Allianceが認定したデバイスやブリッジに限られるが、使用可能。
- 導入が簡単
- Zigbeeデバイスと直接通信できるアプリが必要な場合がある、かな?
Zigbee2MQTTの特徴
結論で言うと、Zigbee2MQTTを使ったほうが、のちのちZigbee機器を増やした場合にすんなり導入することができて便利です。
- Zigbee2MQTTに対応するデバイスならば、メーカーやブリッジに関係なく使える。
- MQTTをサポートするスマートホームプラットフォームやアプリならばどれでも使える。
ただ、設定がなかなかうまく行かず手こずる場合が多い。
- 使い始めるまでに手間が必要で、落とし穴が多くなかなか使い始められない。
どうしても設定がうまく行かない時だけZHAを使うという手もあります。
Zigbee USBドングルのファームウェアアップデート・導入
ZHA・Zigbee2MQTTどちらを使うにしても、Home AssistantがZigbee通信するためのUSBドングルが必要になります。
今回はHomeAssistantのZigbeeゲートウェイで使用するためにSONOFF Zigbee Dongle-E 3.0 USBドングルを導入していきます。
SONOFF Zigbee Dongle-E 3.0

こちらで18.86ドルで購入できます。円にしたら、2300円前後です。

ZBDongle-PとZBDongle-Eの2種類ありますのでご注意ください。
- 旧型 ZBDongle-P:CC2652Pチップセット
- 新型 ZBDongle-E:EFR32MG21チップセット(Matterサポートの可能性あり)
ただ、「P」のほうがZigbee2MQTTで扱いやすいという話もあるのでどっちを選べばよいかは微妙なところ。
ファームウエアを書き換える前に
Sonoffのファームウエアフラッシュ説明PDF
Zigbee2MQTTのより詳しいファームウエアの導入方法は↓こちらにあります。
ファームウェアダウンロード
SONOFF Zigbee Dongle-E 3.0は最初からファームウェアが入っていてすぐに使えますが、Zigbee2MQTTだと不安定だったのでファームウェアを導入していきます。
安定して動作するのはncp-uart-sw_EZNet6.10.3_V1.0.1.gbファームウエアを導入するとよさそう。
ファームウエアはこちら↑でZipファイルとしてダウンロードしても良いのですが、

ピンポイントでダウンロードするには「https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/blob/master/Dongle-E/NCP/ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl」にアクセスして直↓でダウンロードでも良いでしょう。

Downloads\Sonoff_Zigbee_Dongle_Firmware-master\Sonoff_Zigbee_Dongle_Firmware-master\Dongle-E\RouterのZ3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gblを選択した。
最初は、Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gblを焼いたが動かない。
SecureCRT ファームウェアを転送するソフト

こちらからSecureCRTをダウンロードする。
インストールウィザード起動するので簡単。

セキュリティがドーノコーノと言っていますがContinue押す。

ファームウェアアップデート
SONOFF Zigbee Dongle-E 3.0のケースを取る
SONOFF Zigbee Dongle-E 3.0のケースを取らないとボタンにたどりつけないので取りましょう。

2つのボタンはファームウエアを焼く時に使います。
ケースを取ったらPCのUSBポートにさす。
SONOFF Zigbee Dongle-E 3.0のCOMポートを調べる
まずはPC左下を右クリックからデバイスマネージャーを開いて、SONOFF Zigbee Dongle-E 3.0のシリアルポートをチェック。この時は↓COM22でした。

SecureCRT起動
続いてSecureCRTを起動してFile > Quick Connectを選択。

PortにCOM22を選んで、Baud rate:115200に、XON/XOFFのチェックを外してConnect

SONOFF Zigbee Dongle-E 3.0と接続
SONOFF Zigbee Dongle-E 3.0のBootボタンを押したままRSTボタンを押すと以下のようにSonoff V1.0.1などの表示になるので、upload gblの「1」を押す。

すると「CCC」が表示されるのでTransfer > Send Xmodem…を選ぶ。

ファイルを選択するウィンドウが開く。
1回エラーになったので[ctrl]+[c]でキャンセルして、再度実行した。

もう一度実行したら↓無事アップデート完了。

MQTTブローカー・Zigbee2MQTT アドオン インストール
Zigbee2MQTTを使う場合はこの項目から、ZHAの場合は下の項目から始めます。
Zigbee2MQTTで使えるZigbee機器
Zigbee2MQTTはかなりたくさんのZigbee機器に対応している。
Mosquitto brokerアドオン インストール
設定 > アドオン >アドオンストア(右下)でMQTTと入力してMosquitto brokerをインストールする。

クリックすると以下の表示になるので「インストール」を押す。

アドオン リポジトリ追加
設定 >アドオン >アドオンストア(右下)の右上にある点々点をクリックしてリポジトリを選ぶ。

アドオンリポジトリの管理が開くので、「https://github.com/zigbee2mqtt/hassio-zigbee2mqtt」のURLを入力して追加ボタン。

以下の表示になったら閉じるを押す。

うまくいかない場合は、↓こちらの
ページにあるこちら↓のボタンからも同様に操作できる。

アドオン インストール
アドオンストアで「Zigbee2MQTT」と検索してZigbee2MQTTをインストールする。
Zigbee2MQTT Edgeでも良さそうですが、一般的にはZigbee2MQTTのほうが良いようです。

Zigbee2MQTT起動失敗例
設定しない状態で起動を押して「WEB UIを開く」を押すと・・・

この表示↓になるのでRETRYしてみる。

起動しないので、設定 > アドオン >Zigbee2MQTT > ログを見ると以下のようにudevadmが見つからなくてzigbee-herdsmanが起動できないようです。
[10:36:10] INFO: Preparing to start...
[10:36:11] INFO: Socat not enabled
[10:36:15] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:info 2024-02-13 10:36:25: Logging to console and directory: '/config/zigbee2mqtt/log/2024-02-13.10-36-24' filename: log.txt
Zigbee2MQTT:info 2024-02-13 10:36:25: Starting Zigbee2MQTT version 1.35.3 (commit #unknown)
Zigbee2MQTT:info 2024-02-13 10:36:25: Starting zigbee-herdsman (0.33.8)
Zigbee2MQTT:error 2024-02-13 10:36:25: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2024-02-13 10:36:25: Failed to start zigbee
Zigbee2MQTT:error 2024-02-13 10:36:25: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2024-02-13 10:36:25: Exiting...
Zigbee2MQTT:error 2024-02-13 10:36:25: Error: spawn udevadm ENOENT
at Process.ChildProcess._handle.onexit (node:internal/child_process:284:19)
at onErrorNT (node:internal/child_process:477:16)
at processTicksAndRejections (node:internal/process/task_queues:82:21)
Zigbee2MQTT 設定
SONOFF Zigbee Dongle-E 3.0USBドングルのシリアルパスを確認
SONOFF Zigbee Dongle-E 3.0USBドングルの場所が分からないので、まずはどこにあるか確認。
こちらのページ↑のように「ls -l /dev/serial/by-id」でポートを見つける。/dev/ttyACM0がポートだった。
$ sudo docker exec -it homeassistant /bin/bash
homeassistant:/config# ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Feb 14 04:36 usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20231214183719-if00 -> ../../ttyACM0
こちら↓のページなどを参考に、serial部分に以下を追加した。

他のシリアルパス確認方法は、設定 > システム >ハードウェアで「すべてのハードウェア」を押して「Zigbee」と検索すると出てくる。

設定が分かりづらい
Zigbee2MQTTで一番ハマるのが設定、USBドングルの違いで設定方法も違うみたい。
設定 > アドオン >Zigbee2MQTT > 設定で追加します。
mqttとか入れるようなことを書いてありましたが、Home Assistant 2024.2.2最新版とSONOFF Zigbee Dongle-E 3.0の場合は不要。
mqtt
server: mqtt://core-mosquitto:1883
serial
port: /dev/ttyACM0
adapter: ezsp
設定は以下のみ。
port: >-
/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20231214183719-if00
port: /dev/ttyACM0でもいけると思うけど、ttyACM1とかに変わる場合もあるという。

portだけ入れて起動したらすんなり起動した。他の設定をグチャグチャ入れたら不安定か起動しなかった。
Zigbee2MQTTを再起動
設定 > アドオン >Zigbee2MQTT >情報からZigbee2MQTTを再起動して「WEB UIを開く」でちゃんと起動しているかチェックする。

以下の画面になったら成功。

Zigbee機器とペアリング
Zigbee2MQTTの右上、この↓部分をクリックするとカウントダウンが始まる。

あとは、Zigbee機器のほうでボタンなどを押してペアリングモードにすると、勝手に↓リストに追加されていく。

どんどん追加されていく。

Zigbee2MQTTは設定だけうまくいけばあとは簡単にZigbee機器にペアリングできる。
IKEA トロードフリ電球 Zigbee2MQTTでペアリング
IKEAに行ったのでこちらのZigbee対応トロードフリLED電球を買ってきました。


左のLED電球はソケットが太いタイプだと思って買いましたが、間違えてE17タイプを買ってしまった・・・本当はE26タイプを買わないといけなかった。(泣)
Zigbee2MQTTを使わない場合は、IKEAのハブが無いとペアリングできません。
Zigbee2MQTT ペアリング
LED電球を照明器具にはめて、電気のスイッチをカチカチと素早く6回点けたり消したりすると、LED電球が明るくなったり暗くなったりするエフェクトになるのがペアリング開始の合図。

Zigbee2MQTTの右上の↑Permit joinをクリックしてペアリングのカウントダウンをスタートすると、勝手にペアリングしてくれます。

IKEAの専用ハブ(DIRIGERA ディリフィエラ)無しでもペアリングできるのは嬉しいです。


色はウォームタイプで最大440lmちょっと暗い、エフェクトもできる。
IKEA トロードフリ電球 LED1949CSは使えなかった
ペアリングはできたもののNot supportedと表示されて、スイッチなどの操作は不可。

右下にこんな↑表示が出た。

手動でコードを変更して設定を操作すればできそうですが、面倒なので気が向いたらやってみます。
Zigbee機器が増える
特に必要無いがAliexpressをのぞいていると百円ショップセール開催(1~3ドルほど)してるので安いZigbee機器を買ってみた。
USBアダプターとLED電球はこちらでペアリング方法を紹介しました。

Tuya・SONOFFなど、品質はあまり良くはなく、オモチャっぽい見た目(プラスチックが良くない?)やはりXiaomi製品とは一味違って3流メーカーの製品といった感じ。
ただ、安いし普通に問題なく動作するのでOK。ドアセンサーと長い人感センサー(↓左上)は別途単4電池2本が必要。真ん中の正方形の人感センサー2つはボタン電池2450が入っていた。

電池を入れたらZigbee2MQTTのページPermit joinを押して、センサーの穴にピンを指して長押しすると、追加されていく。

今回買ったものは全て正常に登録・動作する。IKEAのLEDライト一個だけ操作不可。
可用性(availability)の設定
定期的にZigbee機器にアクセスして生存確認。
availabilityをオンにしないと人感センサーやLED電球と接続できないみたい。

定期的にアクセスするが・・?なかなかOnlineにならない。

温湿度計以外は状態が更新されない。
再起動などしてOfflineになったらペアリングボタンなどを押して再度Onlineにすると継続して温度などの計測する。
ZHA(ZHA=ZigBee Home Automation)を使う
ここからは、Zigbee2MQTTを使わないで、ZHAを使ってZigbee機器を登録する手順になります。
デメリットはIKEAなどのハブを使うZigbee機器は登録できないこと。
メーカーごとの専用ハブ(ゲートウェイ)を使わないで直でZigbeeと接続できるZigbee機器は登録できます。
ちなみにZHAとZigbee2MQTTは共存はできません。どちらかを使う必要がある。
両方使おうとすると、HomeAssistantの設定で↓このような警告が出たので、ZHAを使う場合はChannel25の「バックアップを復元する(推奨)」を選択、Zigbee2MQTTを使う場合はChannel11の「新しい設定を維持する」を選択する。

やはりちょっと手間が必要ですが、Zigbee機器を増やしていきたい場合はZigbee2MQTTを使ったほうがよさそう。
ZHAは簡単すぎるので特に説明する必要は無いと思いますが、書いちゃったので載せておきます。
SONOFF Zigbee Dongle-E 3.0をHome assistantに登録する
ZHAを使ってHome assistantにSONOFF Zigbee Dongle-E登録は簡単で、まずはHomeAssistantをインストールしたシングルボードコンピュータ(今回はKhadas VIM1S、Raspberry Piでも可能)にUSBにSONOFF Zigbee Dongle-E 3.0を差す。
設定 > デバイスとサービス を見ると以下のようにSONOFF Zigbee 3.0 USB Dongle Plus V2と表示されるので「設定」ボタンを押して登録してみます。

ネットワーク形成は最初なので「ネットワークを作成する」にしました。

あっさり登録完了。

デバイスとサービスのページで↓zha(Zigbee Home Automation)の表示になります。

まだ1デバイスしかないのですが、リンクをクリックすると↓このように表示されます。

以下のスイッチや温湿度計・人感センサー・水没センサーはSONOFF Zigbee Dongle-E 3.0のファームウェアを焼かなくてもペアリングできました。
ZHA:Xiaomiスイッチを追加
まずは簡単なところから、ZigbeeのXiaomiスイッチlumi.sensor_switch.aq2をHomeAssistantに追加していきます。

MODELを取得
まずはMi CloudにアクセスしてXiaomiスイッチのモデルを取得します。特に必要ない。
$ bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run.sh)
Mi HomeのID・Passでログイン、国はCN
省略
NAME: スイッチ
ID: lumi.158d0001a674d0
MODEL: lumi.sensor_switch.aq2
モデルはlumi.sensor_switch.aq2ということが分かった。
Zigbee Home Automation(ZHAインテグレーション)でXiaomiスイッチをペアリング
Xiaomiスイッチのリセットボタンを長押しして点滅させてもボタンを離すと点滅が消えてしまってどうも不安定。

でもちゃんとSONOFF Zigbee Dongle-E 3.0がXiaomiボタンをペアリングしてくれた。

これでXiaomiボタンlumi.sensor_switch.aq2が使えるようになった。
ブループリントを追加
ブループリントとは、オートメーション(自動化)を簡単に作成できるようにしたテンプレートのようなもの。
以下のページにXiaomiスイッチのlumi.sensor_switch.aq2のブループリントがありましたので利用させていただきます。

Home AssistantにログインしたWebブラウザでこちら↓をクリックして、Home Assistantにブループリントを追加していく。

以下のような表示が出てる。最後にブループリントのインポートを押す。



オートメーションを作成
ZHA – Xiaomi Aqara Wireless Mini Switch (WXKG11LM)が追加された。

設定 > オートメーションとシーン > ブループリントにZHA – Xiaomi Aqara Wireless Mini Switch (WXKG11LM)が表示されるのでクリック。
先ほどZHAインテグレーションで登録したlumi.sensor_switch.aq2を選ぶ。

1クリックから5クリックまで操作させることができてすごい!
作成されたオートメーションは設定 > オートメーションとシーン > オートメーションで見ることができる。

これで1クリックで3Dプリンターの電源がトグル(オン・オフ)できるようになった。あと、2・3・4・5クリックは何に使おう?考え中
ZHA:Zigbee対応の温湿度計 SONOFF SNZB-02D
ついでにZigbee対応の温湿度計SONOFF SNZB-02Dを買ってみた。Aliexpressで1個12ドル(高いけど表示がでかい)ほどだけど3個で32ドルほどだったので3個買う。
SONOFF SNZB-02D 開封

普通の温湿度計ですね。裏にシールがついている磁石のベースも付いている。

冷蔵庫などに磁石でくっつけることができ、スタンド・シールでくっつけて壁に設置も可能。
裏に飛び出てる紙を引き抜くとボタン電池が通電して温湿度が表示される。

裏蓋を開ける場合は+ネジを一本取ってから開ける。
ZHAでペアリング
設定 >デバイスとサービス > Zigbee Home Automationで右下の+デバイスの追加ボタンを押してペアリングします。

温湿度計本体は裏のボタンを5秒長押し。


SONOFF Zigbee Dongle-E 3.0のUSBドングルがZigbeeデバイスを探す。

すぐに温湿度計が見つかる。

温湿度計が3つ増えた。

オーバービューに追加
あとは、オーバービュー > 鉛筆アイコン(右上) > +カードを追加(右下)から一覧などを選んでカードに追加していく。

利用不可↑の表示になった場合は下項目で設定するZigbee2MQTTの設定がおかしいので修正する必要がある。

ZHA:Xiaomi 水没センサー・人感センサー
続いてZigbee対応のXiaomi水没センサーや人感センサーをペアリングしてみます。
こちらはMi Cloudでデータを取得する必要はありませんでしたが、載せておきます。↓
NAME: 人感センサー
ID: lumi.158d000125a3d2
MODEL: lumi.sensor_motion.v2
---------
NAME: 水浸センサー
ID: lumi.158d00028342eb
MODEL: lumi.sensor_wleak.aq1
ZHAでペアリング
人感センサー・水没センサーのペアリングボタンを長押ししたあとに、設定 >デバイスとサービス > Zigbee Home Automationで見ると↓表示されます。


視覚的表示を見ると↓このようにZigbeeに登録したデバイスが表示されて面白い。

オーバービューに追加
あとは状態を見れるようにオーバービューに追加するだけ。基本的にエンティティで追加する。


エンティティカードだとサイズが大きいので、最終的にグリッドにしました。

いや、複数のエンティティが使えるカードのほうがよさそう。

以上、Zigbee2MQTTとZHAを使ったHome AssistantにZigbee機器を登録する方法でした。
縛られたIoT機器を使いたくない方は、Zigbee機器を導入したほうが自由に使えて良さそうです。
4つのスイッチTS0044追加
2016か2032のボタン電池2つが必要でした。

Home Asssistantで使えるようです。以下のページで説明してありました。
Zigbee2MQTTとペアリング
左下のスイッチを10秒ほど押すと4つのスイッチともに点滅する。Zigbee2MQTTの「Permit join (All)」をクリックしてペアリングモードにすると自動的にペアリング完了。

ブループリント サンプル
ブループリントもあり、ChromeでHome Assistantにログインしておいて、

以下のMy Inport Blueprintのリンクにアクセスするとインストールされます。

設定 > オートメーションのブループリント タブに表示されました。

あとは、上記の「Zigbee2MQTT – Tuya 4-Button Scene Switch」をクリックすると、以下のように各ボタンのアクションなどを追加できるので、扇風機のオンオフや照明のオンオフなどに使える設定をするだけです。


保存を押すと名前を好きなようにリネームします。デフォルトで「Zigbee2MQTT – Tuya 4-Button Scene Switch」になっています。
オートメーションに移動するので、先ほどの名前の部分の右側点3つをクリックして実行を選択する。

・・・動かない、なんででしょ?未解決
コメント