homebrige + NatureRemoプラグイン (ローカルAPI利用)の組み合わせで、『ON/OFFが同一の信号(トグル方式)に設定されているシーリングライト』をHomekitでON/OFF制御できるようになった。
参考記事とその要約
NatureRemoの制御に、homebridge-nremoプラグインを利用する。
このプラグインは、on, offに、任意のコマンド(赤外線信号;複合コマンドもOK)を割り当てられる。
「on 」に確実にライトがON状態になる信号(例えば、「全灯」)を、offに確実にOFF状態になる信号の組み合わせ(例えば、「全灯」のあとに「ON/OFF」)、を割り当てるのがミソ。
このテクニック、他の機器にも応用できそう。
注意点;赤外線信号の調べ方
2021年3月現在、送信する信号を示す 数値(配列)の調べ方が、
- Remoに向けてリモコンのボタンを押す
- NatureRemoのローカルAPIを叩く(と直前に押した信号が拾える)
という手段しかない。
Cloud側で信号のデータを保存してるはずだから、Cloud APIで拾えるだろうと思ったら公開されていなかった。
一番トラップだったのは、
赤外線信号を示す数値配列が長くて、Homebridge UIのコンフィグ画面で貼り付けたら自動整形される→設定項目の前後が見えなくなる→コンフィグファイル(json)を書き損じる→homebridgeのサービス起動失敗
となったこと。
コンフィグファイルがおかしくても、各プラグインの起動時にjsonを読み取るタイミングでしかエラーが発覚しないようで、(homebridge本体はコンフィグファイルがおかしいかチェックしない模様)
エラーログに出てたエラー箇所(プラグインのソースコードの該当箇所)を確認して、ようやく原因に気づけた。
その他
「ON/OFF」のボタンしかない場合でも、「ON」と「OFF」に対応する赤外線信号が存在する場合がある模様。
その調べ方が下記にまとめられていた。個別の信号が存在する可能性に気づけるなんて、天才か…。