Node-RED with Zigbee2MQTT on RPi
ZigbeeをMQTT に載せることができたので、Node-RED と連携させる
Node-RED の設定
zigbee2mqtt のリモコン操作を検知
前回は、remote_3 のMQTT通知を検知し、switch node で、action 毎に制御を分割するところまでやった。
設定毎にpayloadを生成
switchの先は、それぞれzigbee2MQTTに送信するpayloadを生成する
例えば、電球を最大まで明るくするpayload はこんな感じ。
value を {"brightness": 30, "state": "on"}
にすれば、薄暗い。
value を { "state": "off" }"
にすれば、消灯。
value の参考値は、リモコンを操作してログを見たり、電球の仕様書は一般的なので、それをさがしてもいい。
join で集約
さて、ここで3種類(点灯、常夜灯、消灯) のpayloadを電球の数(7個)だけフローとして接続すると、3x7=21本の接続線が必要となる。
カッコ悪いので、 join
でmergeして、 join
から各電球に接続する。
MQTT でZigbee2MQTT に送信
各電球毎に制御するための Topic
が異なるため、MQTTで電球分だけNodeを作って、 join
と繋げる。
Topic 例
zigbee2mqtt/{Zigbee family name}/set
Dashboard 設定
Node-RED の dashboard に新たに、Zigbee制御の WALL
を追加。
これで、赤外線リモコンと、Zigbeeリモコンの操作可能なDashboardができた。