【Home Assistant(Hass.io)】
zigbee2mqttまわりのアップデート
「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。
久しぶりにドア窓センサーを追加しようと思ったら認識されない。これはzigbee2mqttを再起動じゃ、とsudo systemctl stopほにゃらら
、systemctl startほにゃらら
したのですが、zigbee2mqttの再起動時のログをよく見ると「nodeのバージョンが期待しているのと違う!」とか仰っております。うちのはv11.15.0でしたが、v11はダメな様子。
あげてやろうじゃないですか。と、思って意外とハマった話…
- 【Home Assistant(Hass.io)】 zigbee2mqttまわりのアップデート
- 1. Node.jsのアップデート
- 2. zigbee2mqttのアップグレード
- 3. zigbeeノードのアップデート
- 5. おわりに
この記事の前提条件 | |
---|---|
Home Assistant | 2021.7.3 |
HassOS | 6.10 |
Server | Raspberry Pi 4(2GB) |
上記バージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)
1. Node.jsのアップデート
最初メッセージに「nodeのバージョンが違う!」と言われたので、コーディネーターやらルーターやらのバージョンの話かと思ってzigbeeデバイスのFirmwareサイトを探しに行ってしまいました。それはそれで何やらバージョンが上がっているのですが、バージョン番号などを見ると違う話のよう。
(こっちのアップデートも後でやりましょう)
メッセージ(消してしまいましたが)をよく見るとどうやらnode.jsの事らしい。でnode.jsのバージョンは?ということで、コンソールから確認すると、
$ node -v v11.15.0
と答えるところを見て、思い出した!Raspberry Pi ZeroはARMv6ベースなので、node.jsの公式サポートから外れてたのでした。zigbee2mqtt導入時は苦労してコンパイルして入れたんでしたね。
今回はもちっと楽な方法で入れてみましょう。公式にはコンパイル済みの提供はないのですが、じつは公式サイトに「非公式のビルド版」なるものがありました。そこの最新(v16.6.0)を入れてみましょう。(安定版のv14.17.4を入れたければ、バージョンのところを書き換えれば大丈夫)*1
まずはzigbee2mqttを止めます。
$ sudo systemctl stop zigbee2mqtt
非公式版の置き場https://unofficial-builds.nodejs.org/download/release
からarmv61のファイルを探します。最新版はv16.6.0の様子。
$ cd /tmp/ $ wget https://unofficial-builds.nodejs.org/download/release/v16.6.0/node-v16.6.0-linux-armv6l.tar.gz $ tar xvfz node-v16.6.0-linux-armv6l.tar.gz $ cd node-v16.6.0-linux-armv6l/ $ rm CHANGELOG.md LICENSE README.md $ sudo cp -R * /usr/local/
node.jsが入れ替わったか確認します。
$ node -v v16.6.0
よしよし、それではzigbee2mqttを再起動します。
$ sudo systemctl start zigbee2mqtt $ sudo jornalctl -u zigbee2mqtt.service -f (ログが流れるので、ざっと見る)
問題なさそうですね。よかった。
2. zigbee2mqttのアップグレード
良い機会なので時々アップブレードされているzigbee2mqttも上げておきましょうか。
$ sudo systemctl stop zigbee2mqtt $ cd /opt/zigbee2mqtt/ $ git checkout HEAD -- npm-shrinkwrap.json $ git pull $ cp -R data/ data-backup/ $ npm ci $ cp -R data-backup/* data $ rm -rf data-backup/ $ sudo systemctl start zigbee2mqtt
なお途中のgit pull
のところでAlready up to date.
とでたら今が最新版ってことだと思うので、そこで終了します。
3. zigbeeノードのアップデート
下記サイトにあるzigbeeノード(CC2351を使用)の最新ファームウェアを確認します。
github.com
ルーターは、CC2531_router_2020_09_29.zip
が最新版のようなので導入時のままで良かったのですが、コーディネーターは前回のCC2531_DEFAULT_20190608.zip
からバージョンが上がりCC2531_SOURCE_ROUTING_20201128.zip
が最新版でしたので置き換えましょう。ついでにdefaultではなくsouce_routingを入れてみました。手順は以前の記事の通り。
source routingについて:
I'm using a CC2530 or CC2531, which firmware should I use?に回答ありますように、15個以上のデバイスを繋げるならsource routingがお勧めのとのこと。ただしコーディネーターに5個しかデバイス(ルーター含む)を繋げられないので、十分な数のルーターを準備する必要ありとのこと。
※再登録要:
根元のコーディネーターのルーティングの扱いが変わったせいか再度登録しないと駄目でした。部屋のあちこちを再接続しに回りました。しばらくはコーディネーターのファームは触らないようにしようかな。
※副作用あり:
zigbee2mqtt mapがうまく表示されない。mapを作るのにルーティングテーブルを見ている様なのですが、source routingになってそのやり方が変わったことが原因でしょう。source_routingに対応したmapアプリを探さないと。
5. おわりに
とりあえず無事に諸々のアップデートも終わり、zigbeeデバイスの追加もできるようになりました(本当の原因は不明…)。数えたところ、現時点でデバイスが30個越え…個々の電池交換が今から心配です。