Introduction
M5NanoC6とZigbee2MQTTとHomeAutomationを使ってHomeKitにIKEA TRÅDFRIを追加してiPhoneから制御できるようにした!!!
動機
- リモコンのボタン電池が煩わしい
- CR2032とか買い置きしてないよ!
- スマホから操作したい
- リモコン探すのが面倒!
- "起床時間->照度MAX"みたいなオートメーションを組みたい
Zigbee対応ハブを調べた
現時点で国内販売されているZigbee対応スマートハブ(24/11/23現在)
メーカー | 製品 | 価格 |
---|---|---|
IKEA | DIRIGERA | 8,900 |
Philips | Hue Bridge | 9,680 |
Amazon | Echo (Gen4) | 11,980 |
Amazon | eero 6+ | 19,980 |
Amazon | Echo Show 8 (Gen3) | 22,980 |
Amazon | Echo Hub | 25,980 |
Amazon | Echo Studio | 29,980 |
Amazon | Echo Show 10 (Gen3) | 29,980 |
Amazon | eero Pro 6e | 36,980 |
Amazon | Echo Show 15 (Gen2) | 47,980 |
Amazon | eero Pro 7 | 95,980 |
電球2つを操作するために払う金額としてはちょっと...って感じなので自作します.
用意したもの
価格は記事執筆及び編集時点のものです
- IKEA TRÅDFRI x2
- E26 電球色: https://www.ikea.com/jp/ja/p/tradfri-led-bulb-e26-810-lumen-smart-wireless-dimmable-warm-white-globe-30541515/
- 販売時期によってHWの仕様が違うらしい (https://www.zigbee2mqtt.io/supported-devices/)
- 自分は
LED1545G12
とLED1732G11
でした (照度のMAX値が微妙に違う)
- 自分は
- ESP32-C6を搭載したボード(M5NanoC6)
- M5NanoC6: ¥1,155~
- Zigbee対応&技適有り
たぶん最安値 - 秋月: https://akizukidenshi.com/catalog/g/g129456/
- SwitchScience: https://www.switch-science.com/products/9570
- Zigbee対応&技適有り
- XIAO ESP32C6: ¥1,040~
- ちょっとだけ安いです
- 秋月: https://akizukidenshi.com/catalog/g/g129481/
- SwitchScience: https://www.switch-science.com/products/9688
- ESP32-H2やnRF52840/52833/5340/21540も使えるみたいです
- M5NanoC6: ¥1,155~
- Home Assistantをインストールするサーバー
- 今回はProxmox上のHAOSに全部乗せました
- 他にもDockerやRaspberry Piに対応
- 設定とか適宜読み替えてください
- ESP-IDFが動作するPC
- 今回はWindows環境を対象とします
- LinuxやMacOSでも動作するはずです(未検証)
Zigbee2MQTT
Zigbee2MQTTとは
- オープンソースのZigbeeブリッジ実装
- 451のベンダー/3900のデバイスに対応(24/11/23現在)
- デバイス定義を自分で追加することもできるらしい
- 複数のAdapterに対応 (https://www.zigbee2mqtt.io/guide/adapters/)
- zStack/EmberZNet/deCONZ/ZiGate/ZBOSS
- 今回はZBOSSを使う (https://www.zigbee2mqtt.io/guide/adapters/zboss.html)
Adapterの作成
M5NanoC6にファームウェアを焼いて通信用のAdapterにする
ZBOSSのサポート及びESP32-C6用のFirmwareは実験的です.
また,ZBOSSのフル機能(Touchlink等)は実装されていません.
1. VSCodeにESP-IDF拡張機能をインストール
VSCodeにESP-IDF拡張機能を追加
2. ESP-IDFをインストール
拡張機能のチュートリアルに従ってToolkitをインストール
EXPRESSを選択し,Versionを指定. 今回はv5.3.1を使用
2. RepoをCloneする
適当なフォルダにリポジトリをCloneする. CloneできたらRepoをVSCodeで開く
git clone https://github.com/andryblack/esp-coordinator.git
3. プロジェクトをビルドする
プロジェクトが開けたら,ビルドターゲットをESP32-C6 chip (via builtin USB-JTAG)
に変更し,ビルドを実行
4. Flashする
M5NanoC6のボタンを押しながらPCに接続
シリアルポートを変更し,Flash Device
をクリック
Home Assistant
Home Assistantのインストール
今回はProxmox上にHome Assistant OS(HAOS)としてセットアップします.
1. HAOSの仮想ディスクをダウンロード
公式ページからKVM用の仮想ディスクをダウンロード
wget https://github.com/home-assistant/operating-system/releases/download/13.2/haos_ova-13.2.qcow2.xz
unxz haos_ova-13.2.qcow2.xz
2. 仮想マシンを作成 / ディスクのインポート
ProxmoxのWebUIで仮想マシンを作成, 以下のコマンドを実行しディスクをインポートする
完了したらディスクをアタッチ
sudo qm importdisk <vmid> haos_ova-13.2.qcow2 <storage>
3. 起動及び設定
仮想マシンを起動後,表示されたIPにアクセスしアカウントを作成する.
4. USB接続及びパススルー
先ほど作成したAdapterをUSB接続
仮想マシン設定から対応するUSBデバイスを追加
Manufacturer: Espressif
Product: USB JTAG/serial debug unit
Zigbee2MQTTのインストール
今回はHome Automationのアドオンとしてセットアップします.
Dockerインストールの場合,アドオン機能が利用できないため別コンテナを作成する等の手順が必要となります.
1. アドオンストアにリポジトリを追加
設定->アドオンを開き,右下のアドオンストア
をクリック
右上のメニューからリポジトリ
を選択
https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
と入力し,追加
をクリック
2. Zigbee2MQTTとMosquitto brokerをインストール
ストアページからZigbee2MQTTとMosquitto brokerをインストール
Zigbee2MQTTが表示されない場合はページをリロードしてみてください.
拡張機能の設定
1. Mosquitto brokerを起動
Mosquitto brokerのページを開き,起動
をクリック
2. Zigbee2MQTTの設定
Zigbee2MQTTのページを開き,上部の設定
をクリック
serial
の項目に以下を追加し, 拡張機能を起動
port: /dev/ttyACM0
adapter: zboss
シリアルデバイスのパスはインストールによって異なる場合があります.
ペアリング
1. Zigbee2MQTTの設定ページを開く
2. Joinを許可
Settings->Main
からPermit join
のチェックボックスを有効化し,Submit
をクリック
3. 照明をペアリングする
照明のスイッチを6回ほどオンオフし,ペアリングモードにする
Zigbee2MQTT側でデバイスを認識すると通知が表示される
HomeKitに統合
1. Home AssistantにMQTT統合を追加
設定->デバイスとサービス
を開く
おそらくHA側で自動認識していると思うので追加
をクリック
2. ファイル編集アドオンを追加
設定->アドオン->アドオンストア
を開き,File editor
をインストール
インストールできたらサイドバーに表示
をオン
3. configuration.yaml
を編集
サイドバーからFile editor
を選択
左上のファイルアイコンをクリック,configuration.yaml
を選択, 以下の設定を追加
homekit:
- name: HASS Bridge
port: 21063
advertise_ip: "<VMのIPアドレス>"
advertise_ip
はmDNSで公開するIPを設定しています.
Home Assistantに複数のIPを割り当てているためこの設定を入れていますが,普通の環境であれば不要(なはず)です
4. 再起動
Bridgeをホームに追加
ブリッジと各電球をどの部屋に追加するか聞かれるので適当な部屋に放り込む
追加するとこんな感じ
電球が登録/アクセスできない場合はHomeBridge統合かHAを再起動すると(だいたい)治ります
まとめ
以前まで国内でZigbee対応ドングルを入手するのって結構難しかったんですが,ESP32-C6の登場で状況が変わりつつあるのかな?と思っています.
追加投資1k程で照明をスマート化できたので大満足です.