Sympapaです。
我が家のHome Assistantで使っているセンサー類や照明は主にZigbee接続のもので、Zigbeeデバイスの数は合計120個くらいに達しています。一個1000円だとしても12万円、ピンキリながら平均1500円はいっていそうなのでそうすると18万円か。。。(汗)
そして、Home AssistantとZigbeeデバイスの接続にはメイン(65%くらい)でZigbee2MQTTアドオンを使い、負荷分散のためにサブ(35%くらい)でZHAを使っています。同じデバイスでもZigbee2MQTTの方が細かい設定が出来たりして優れた点が多いのですけどね。
んで、Zigbee2MQTTが1月に大型アップデートされバージョンが1.x.xから2.x.xとなりました。
いくつかbreaking changeがあり、↓ここを見てとりあえずbreaking changeの影響が最小限になるという設定をして正月に2.0.0にアップデートしたのですがリモートボタンスイッチである"Hue Dimmer switch"が機能しなくなり。。。
github.com
調べてみると↓ここに解決策が書かれていたけど、それをやってもうまくいかず。
www.zigbee2mqtt.io
我が家では"Hue Dimmer switch"を5個使っていて、LDKの出入口の照明スイッチとしても使用しているのでこれが機能しないのは致命的。。。解決策をみつけるまで機能しないのは困るので、一旦、Home Assistantのバックアップを復元してZigbee2MQTTのバージョンを1.42.0に戻していました。
そしてZigbee2MQTTの2月のリリースを待てば何か解決策が盛り込まれるかもしらんというスイートかつ軟弱な考えで放置するも、2月の2.1.0のリリースが来てもピリッと強硬なままのZigbee2MQTTでした(笑)
そんなワケで本日覚悟を決めてZigbee2MQTTを1.42.0から2.1.1-1に更新しました。この際ってことでbreaking changeの影響が最小限になる設定も無しでいきました。
そして予定通り(?)"Hue Dimmer switch"が機能しなくなったので、それを解決する作業をしながらブログに書いていくとしましょう。
■ブループリント"Different_switches_zigbee2mqtt"を試す
2週間ほど前にコモノポリタンさんのブログで解決先のひとつを見つけていました。
maky-ba.hatenablog.com
Zigbee2MQTT 2.0.0以降に対応したリモートボタンスイッチ用のブループリント"Different_switches_zigbee2mqtt"です。
IKEA, Aqura, Philips Hueと多岐に渡るリモートスイッチに対応している模様。
github.com
しかし、このブループリントを試してみましたが動かず。。。(><)
我が家で使っている"Hue Dimmer Switch"のモデルは全て旧型の"324131137411"なのですが、"Different_switches_zigbee2mqtt"は”Compatiible with 929003017102, 929002398602, 324131092621”となっていて、我が家で使っているモデル"324131137411"には対応していない模様。。。
■振り出しに戻ってもめげない
振り出しに戻ってあらためて↓の"Breaking change"の注意点みたいのを読んでみます。
github.com
「すべてのアクション センサーはデフォルトで無効になりましたよー。代わりに MQTT デバイス トリガーを使用することをおススメします。」って書いてあります。
しかしですね。。。私はアップデート以前からそのおススメであるMQTT デバイス トリガーを使用していたのですよね。。。
ここには↓のようにしろって例が書かれています。
automation: - alias: Respond to button click triggers: - trigger: device domain: mqtt device_id: ad44cabee4c646f493814306aa6446e1 type: action subtype: arrow_left_click actions: - action: light.toggle target: entity_id: light.bedroom
我が家のHome Assistantで使っているトリガーは↓これなんですが。。。
domain: mqtt device_id: xxxxx type: action subtype: on-press discovery_id: xxxxx action_on-press trigger: device
ん?
”discovery_id: ”ってのが余計なのかな。ってことで、"discovery_id: xxxxx action_on-press"を消してみましたがそれでも動きません。うーん。
更にググったところ、↓この情報を見つけました。
github.com
「私はHue Dimmer スイッチでも同じ問題が発生し、自動化でアクション"on-press"をトリガーしていることに気付きました。どうやらこれは"on-press"(ハイフン付き)ではなく、アンダーバー付きの"on_press"になっているようです。自動化を"on_press"でトリガーするように変更すると、すぐに再び機能し始めました。」って書かれています。
Zigbee2mqttのログをみると、確かに"MQTT publish: topic 'zigbee2mqtt/Hue_Dimmer_SW_5', payload '{"action":"on_press",..."となっていてアンダーバー付きであることが確認できました。
アップデート前もアップデート後もUIでMQTTデバイストリガーを設定する際、トリガーの選択肢は"on-press"(ハイフン付き)だったのですよね。
そこでオートメーションのトリガーを.yamlで編集して↓のとおり"on_press"(アンダーバー付き)にしてやるとちゃんとトリガーが発動しました。\(^o^)/
ってかなんで今でもUIで設定する時の選択肢にハイフン付きが表示されてアンダーバー付きが表示されんのやろ?一回.yamlでアンダーバー付きを設定すると選択肢には両方が表示されます。。。
domain: mqtt device_id: xxxxx type: action subtype: on_press trigger: device
だがしかしです。長押しの"on_hold"も設定しボタンを長押しすると、"on_press"と"on_hold"の両方のトリガーが発動してしまいました。1.42の時にはそうならなかったのですが。。。
仕方がないので、"on_press"の方は"on_press_release"としてボタンを離した時に発動するようにすることで、ボタンを普通に押した場合と長押しした場合の両立が出来るようになりました。
ダブルクリックは元々使っていないので試してませんが、この挙動だとダブルクリックはうまく動かんのちゃうやろか?
いずれにしてもこの内容でシコシコとオートメーションを修正して、我が家の"Hue Dimmer switch"は復活しました。
■もうひとつ問題があった
"Hue Dimmer switch"とは無関係ですがもうひとつ問題があって、Zigbee2MQTTのアップデートによってXiaomiの照度センサー"GZCGQ01LM"の照度のエンティティが消えてしまいました。
この問題はコモノポリタンさんのブログに書かれていた方法でさくっと解決したので割愛します。
maky-ba.hatenablog.com
■まとめ
そんなワケでZigbee2MQTTを1.42.0から2.0.0以降へアップデートしたことによって発生した"Hue Dimmer switch"使えなくなった問題は解決できました。覚悟していたより短時間で解決できて満足満足。。。大雪なので浮いた時間は雪かきに。。。(汗)
まぁしかし、他にも問題隠れてないやろか?ってことで、暫く様子見ですねー。
それでは。