スポンサーリンク

【Zigbee2MQTT】ZigbeeデバイスをHomeKit対応する方法

HomeKit
この記事は約8分で読めます。
スポンサーリンク

Zigbeeとは簡単に言えば、Bluetoothより通信速度が遅く、距離が短め、消費電力が低く、同時接続台数が多いもの。
特にスマート家電等はスイッチとしての役割が多いためBluetoothよりZigbeeが利便性が高いと言うわけだ。

大体のZigbeeデバイスにはハブが必要となっており、デバイス単体では動かすことができない。
これはHomeKitを構築する際もホームハブが必要なのと同じだ。

今回はZigbee2MQTTをRaspberry Piにインストールし、メーカーの垣根を超えた様々なZigbeeデバイスを使えるようにするのが目的だ。

ちなみにZigbee2MQTTを使うことで対応できるZigbeeデバイスは以下のリンクより。

もちろん、Homebridgeを導入前提なのでまだの方は以下から。

できるだけ簡単にを意識して書いてみたが、やや難度は高いのでご注意。

この記事で書いていること
  • Zigbee2MQTTの導入方法
  • Zigbeeデバイスのペアリング方法
スポンサーリンク

事前準備

Zigbeeの電波を送受信できるUSBアダプタが必要なので以下のようなものを準備する必要があるので買っておこう。

もちろんZigbee2MQTTに対応するZigbeeデバイスも予め用意しておこう。

例えば以下のようなものだ。

Mosquittoをインストールする

Mosquittoのロゴ

Zigbee2MQTTを動かすにはMosquittoという橋渡し的なものが必要なのでインストールする。

ターミナル等からラズパイにログインしよう。
この辺りは以前Homebridgeを構築した時と同様だ。

ssh ユーザー名@ホスト名.local

ログイン後、以下を実行する。

sudo apt install mosquitto mosquitto-clients

インストール完了後、以下で起動する。

sudo systemctl start mosquitto

あとはラズパイ起動時に自動起動するように設定もしておく。

sudo systemctl enable mosquitto.service

Zigbee送受信機USBをRaspberry Piに接続する

まずは接続したUSBを見つける。

sudo dmesg

すると、以下のような文字列があるはずだ。

usbcore: registered new interface driver ch341
usbserial: USB Serial support registered for ch341-uart
ch341 3-1:1.0: ch341-uart converter detected
usb 3-1: ch341-uart converter now attached to ttyUSB0

「usbcore: registered new interface driver ch341」あたりで検索をかければ見つかるはずだ。
このattached to の後に書かれた文字列をメモしておく。

おたくりんご
おたくりんご

大体「ttyUSB0」か「ttyACM0」らしいよ。

Zigbee2MQTTをインストールする

Zigbee2MQTTのロゴ

npmとnode.jsは予めインストールされていると思うので省略する。
していない場合は以下のリンクよりしておく。

npmはバージョン6, 7, 8のどれか
Nodejsはバージョン14, 16, 17, 18のどれかが必要。

Zigbee2MQTT用ディレクトリを作成する。

sudo mkdir /opt/zigbee2mqtt

ディレクトリの所有者変更。

sudo chown -R ${USER}: /opt/zigbee2mqtt

Zigbee2MQTTリポジトリをクローン。

git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt

ディペンデンシーをインストール。

cd /opt/zigbee2mqtt
npm ci

アプリをビルド。

npm run build

続いてZigbee2MQTTの設定ファイルを編集する。

今回はHomebridgeインストール時についでにインストールしたVimを使う前提。
テキストの編集の仕方は好きにやってほしい。

vim /opt/zigbee2mqtt/data/configuration.yaml
おたくりんご
おたくりんご

エディタを選ぶように言われたらvim.basicを選ぼう。

すると編集できるようになるので、以下のテキストの色でラインを引いた箇所を編集した後にコピペする。

# MQTT settings
mqtt:
  # MQTT base topic for Zigbee2MQTT MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

# Serial settings
serial:
  # Location of the adapter (see first step of this guide)
  port: /dev/ttyUSB0
  #adapter: ezsp

advanced:
  network_key: GENERATE
frontend: true

Failed to connect to the adapterのようなエラーが起きる場合はUSBアダプタがV2の為に起こるようで、その場合は上記の#adapter: ezspの#部分を外して試してみてほしい。

ペースト及び編集が完了したら、Escキーを押して「:wq!」を入力、保存して終了する。

一度試しに起動してみよう。

cd /opt/zigbee2mqtt
npm start

エラーが出なければOKだ。Ctrl + Cで停止。

続いて自動起動を作成する。

sudo vim /etc/systemd/system/zigbee2mqtt.service

以下のテキストの色でラインを引いた部分を編集した後にコピペする。

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
Environment=NODE_ENV=production
ExecStart=/usr/local/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
Restart=always
RestartSec=10s
User=pi

[Install]
WantedBy=multi-user.target

ユーザー名はデフォルトのpiでなければ変更が必要。

また、エラーが出る場合はExecStartの部分が異なっていることがあるので、/usr/bin/npm startに書き換えて試してみてほしい。

完了後、「:wq!」で保存して終了。

試しに起動させてみる。

sudo systemctl start zigbee2mqtt.service

うまく起動するようならば有効にする。

sudo systemctl enable zigbee2mqtt.service

Homebridgeにプラグインを入れる

HomebridgeのWeb管理ページのプラグインから検索ボックスに「Homebridge Zigbee2MQTT」と入力し検索後、Homebridge Zigbee2MQTTをインストールする。

恐らく特別なことをしていなければ設定項目を特に書き換える必要はないと思う。

インストール後、Homebridgeの再起動をしておこう。

Zigbee対応製品をペアリングしてみる

Zigbee2MQTTが動いているIPアドレス等を指定してWeb管理ページを開く。
私は「http://ラズパイのホストネーム.local:8080」でアクセスした。

うまくアクセスできると以下のような画面が表示される。(私は既に登録済みなのでペアリング済み製品が表示されている)

ペアリングする時には、上部のDisable joinの部分をクリックしてカウントダウンが始まるとペアリングが許可された状態になる。

カウントダウン状態になっている最中にZigbee製品のペアリング操作を行うとペアリングが行われる。

これでペアリングが完了すると「ホーム」にも反映されるはずだ。

終わりに

一度環境を作ってしまえば非常に簡単にペアリングもでき、普通に使った時よりも「ホーム」で使える機能が多かったり、様々なハブを介すことなく一括で管理もでき便利だ。

環境づくりが少し手間だがチャレンジしてみるのも良いかもしれない。

コメント

タイトルとURLをコピーしました