Remoに存在しないボタンを登録する我が家の照明は、リモコンで操作できる。Remoからももちろん操作できるのだが、リモコンにあるボタンはON/OFFを切り替えるボタンしかない。そのため、明示的にONにしたり、OFFにしたりすることはできない。同じメーカーの他の照明リモコンを見てみるとONのボタンとOFFのボタンが存在している。これは推測だが、おそらくプロトコル上、実装上存在しているが、廉価なモデルのリモコンのため省略されていると考えられる。Remoから照明のONとOFFを操作できるようにする。APIを叩けないので調べる。Remoと同じネットワーク(LAN)につなぐ。つぎに、mDNSでサービスタイプから、インスタンス名を引く。Remoが見つけられる。最後に、mDNSでインスタンス名からIPv4アドレスを引く。RemoのIPアドレスがわかった。Remoに対して、照明リモコンのON/OFFボタンを押して、赤外線信号を送信する。Remoが受信した信号を見る。curl'{"format":"us","freq":37,"data":[4675,2627,564,959,572,1850,563,1863,562,958,564,1860,571,1849,566,956,575,949,564,959,571,1849,574,1850,575,952,571,1850,570,1854,572,1849,564,961,571,1847,568,1859,568,951,566,955,573,951,565,955,564,965,562,1854,576,948,567,956,565,957,572,950,571,951,571,953,570,950,572,945,572,16480,4670,2633,565,959,562,1860,572,1848,574,952,571,1849,573,1851,573,949,573,950,564,956,575,1849,576,1850,562,959,575,1848,572,1853,562,1857,566,959,572,1848,567,1859,570,951,571,953,563,956,565,959,570,951,567,1858,571,949,573,951,564,957,572,949,575,949,564,955,574,948,574,944,566,16484,4682,2624,571,951,564,1859,564,1858,572,952,571,1849,569,1855,573,951,571,949,566,960,562,1857,577,1849,570,951,565,1861,569,1850,574,1849,576,946,575,1849,573,1850,571,953,565,955,573,950,574,947,575,946,574,1852,570,953,570,949,566,959,563,956,573,952,563,959,564,960,569,943,574]}data配列の各要素は、赤外線ONの期間、OFFの期間、ONの期間、OFFの期間、、、、を表している。厳密には、これは38kHzの変調をデコードしたあとの結果である。実際にはONの期間は38kHzの変調信号になっている。プロトコルの詳細は書きを参照されたい。3.4Tであることがわかる。プログラムに噛ませて赤外線信号を16進4バイトのデータにデコードする。00これで、データがわかった。これをすべてのボタンに対して行い、ボタンに対応するデータの一覧を得る。00これらの結果から、おそらく3バイト目が照明の各ボタンの操作に対応していると推察できる。これから、この3バイト目を書き換えて、赤外線を送信し、ONとOFFに対応するデータを探す。受信した信号を見るプログラムに噛ませて16進4バイトのデータを赤外線信号にデコードする。APIで、照明に対して赤外線を送信する。@-無事照明が点いた(消えていたのでON/OFFボタンで点灯した)。3バイト目を書き換えてみて、動作するボタンと、動作内容の一覧を得る。0041がON、49がOFFに対応していることがわかった。Remoにボタンを登録する。APIのアクセス用のトークンを生成し、取得する。以降トークンはXXXX(伏せ字)と表す。APIで、機器の一覧を見る。},(snip)機器のIDがわかる。以降機器のIDはYYYY(伏せ字)とする。APIで、赤外線信号を登録する。"message=ZZZZ&image=ico_off&name=OFF"{"id":"XXXX","name":"OFF","image":"ico_off"}無事、ONのボタンと、OFFのボタンが登録された。writable."2018年に行ったお店リスト月別アーカイブはてなブログをはじめよう!miettalさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。