$*nyme

blog of a man, by a man, for a better future

homebridgeでNatureRemoを使う際の覚書; ON/OFFが同一の信号のシーリングライトをHomekitに対応させる方法

f:id:d_ymkw:20210305203700j:plain

homebrige + NatureRemoプラグイン (ローカルAPI利用)の組み合わせで、『ON/OFFが同一の信号(トグル方式)に設定されているシーリングライト』をHomekitでON/OFF制御できるようになった。

参考記事とその要約

do-gugan.com

NatureRemoの制御に、homebridge-nremoプラグインを利用する。

このプラグインは、on, offに、任意のコマンド(赤外線信号;複合コマンドもOK)を割り当てられる。

「on 」に確実にライトがON状態になる信号(例えば、「全灯」)を、offに確実にOFF状態になる信号の組み合わせ(例えば、「全灯」のあとに「ON/OFF」)、を割り当てるのがミソ。

このテクニック、他の機器にも応用できそう。

注意点;赤外線信号の調べ方

2021年3月現在、送信する信号を示す 数値(配列)の調べ方が、

  1. Remoに向けてリモコンのボタンを押す
  2. NatureRemoのローカルAPIを叩く(と直前に押した信号が拾える)

という手段しかない。

Cloud側で信号のデータを保存してるはずだから、Cloud APIで拾えるだろうと思ったら公開されていなかった。


一番トラップだったのは、

赤外線信号を示す数値配列が長くて、Homebridge UIのコンフィグ画面で貼り付けたら自動整形される→設定項目の前後が見えなくなる→コンフィグファイル(json)を書き損じる→homebridgeのサービス起動失敗

となったこと。

コンフィグファイルがおかしくても、各プラグインの起動時にjsonを読み取るタイミングでしかエラーが発覚しないようで、(homebridge本体はコンフィグファイルがおかしいかチェックしない模様)

エラーログに出てたエラー箇所(プラグインのソースコードの該当箇所)を確認して、ようやく原因に気づけた。

その他

「ON/OFF」のボタンしかない場合でも、「ON」と「OFF」に対応する赤外線信号が存在する場合がある模様。

その調べ方が下記にまとめられていた。個別の信号が存在する可能性に気づけるなんて、天才か…。

miettal.hatenablog.com