なんとかWINで初期設定ができたirkitですがcurlでリモコンコードの読み込みはできるものの、なぜか送信しても機器が反応しません。
Android用のアプリをダウンロードしてみると学習と操作は出来たのでirkitの問題ではなさそうと散々弄った結果やっと操作できました!
どうやら原因はcurlにあったようでirkitのHPにあるように
curl -i "http://IPアドレス/message" -d 'リモコンコード'
としても送信したことを表すLEDの点灯はあるもののまったく操作できません。
いろいろ調べてくいとデータをPOSTしているのですが、通常POSTされたデータはエンコードされているとして処理するところをirkitでは生データとして処理している様子、なのでブラウザから簡単にPOSTしても動作してくれないのでjavascriptを弄らなくてはならないのですが面倒なのでなんとかcurlで操作したいところ。
タスクスケジューラに入れてコマンド一発で制御できるしそっちのほうが便利です。
curlでリモコンコードを'(シングルコーテーション)でくくっていますが、処理系によっては文字列をエスケープ処理しないという意味、リモコンコードの中に"(ダブルコーテーション)が含まれているのでさもありなんと思っていたのですが、ハタと気がついて"でくくって内部の"にエスケープ文字(\)を付けて見たところビンゴでした!
というわけでリモコンコードのくくりを'から"に変えて内側の"の前に\を付けることで上手く機器を制御することができました。
今まで操作できなかったエアコンをデイリータイマー制御できるのでとてもうれしいのですが、このirkitは少々仕様上問題があります。
というのはSSIDとSSIDキーでアクセスポイントに接続しますが、アクセスポイントから外部のwebサーバに接続できない場合エラーになって初期設定の場合は設定を破棄し、設定済みの場合はリセットを繰り返します。
つまり、外部webサーバが無くなった場合irkitをアクセスポイントとして接続するしかないということです。
WIFIネットワークにさえ接続できれば外部からの操作はなんとでもなりますが、外部webサーバが必ず必要となればそうはいきません、そうとう大きなメーカーでなければこの先長い間サーバーを維持できると考えるのは難しいです。
ファームも公開されているし、arduinoなので手を入れることはできると思いますが、今弄るきもないのでそのときが来たら考えることにします。
こういう仕様なので手の込んだシステムを作っても仕方が無いのでバッチファイルをchromeリモートデスクトップで実行するとかタスクスケジューラで呼び出すくらいにしておこうかと思います。