前回、WindowsからiRemocon Wi-FiのローカルIPを取得する方法を紹介しました。
今回は、この取得したIPを利用して、WindowsのコマンドプロンプトなどでiRemocon Wi-Fiを操作する方法を紹介したいと思います。(もちろんTera TermのようなターミナルエミュレーターからでもOKです。)
目次
iRemocon Wi-Fiにtelnetで接続
iRemocon Wi-Fiにtelnetで接続するには、以下のように書きます。
telnet [iRemocon Wi-FiのIP] 51013
51013は、ポート番号です。これは、初期iRemoconもiRemocon Wi-Fiも変わりません。
例えば、iRemocon Wi-FiのIPが、「192.168.100.11」とかだったら以下のように接続します。
telnet 192.168.100.11 51013
すると、telnetのターミナルが起動します。
ここに、開発者向け情報にあるIRM-03WLAコマンド仕様書(PDF)のコマンドを入力してiRemocon Wi-Fiを操作します。
入力は必ずコマンド仕様書にある注意点を守って実行してください。もし不具合が起こっても保証はできません。ソケットエラーなどで一時的に繋がらなくなることもあるかもしれませんが、そういった時は、しばらく時間を置いたらまた繋がるようになります。
接続を確認する
iRemoconとの接続を確認するには、ターミナルに以下のように入力しEnterキーを押してください。
*au
接続が正常に確立されている場合は、「ok」と返ってきます。
こんな感じに表示されます。
*au ok
リモコン信号を送信する
iRemocon Wi-Fiに既にリモコンの赤外線信号が登録されている場合は、コマンドからリモコン信号も発信することができます。
赤外線発光を行うには以下のように書いてエンターを押します。
is;[リモコン番号または文字列]
赤外線発光がうまく行えた場合は、以下のように返ってきます。
is;ok
失敗すると以下のような文字列が返ってきます。
is;err;[エラーコード]
エラーコードについては、コマンド仕様書の最後の方に一覧で見ることができます。これを参照することにより、何が原因でエラーが出たかが分かります。
実際に信号を送信すると、以下のように表示されます。
*is;1 is;ok
リモコンの学習をさせる
リモコンの学習をさせるには、以下のように書いてエンターを押します。
ic;[リモコン番号または文字列]
上記のコマンドを送って、iRemocon Wi-Fi本体に向けて赤外線リモコンのボタンを押します。
学習がうまくいった場合は、以下のように表示されます。
ic;ok
失敗すると以下のような文字列が返ってきます。
ic;err;[エラーコード]
実際に学習し、成功すると以下のように表示されます。
*ic;1 ic;ok
リモコン学習のキャンセル
リモコンを学習モードにすると、有効な赤外線が登録されるまで学習モードのままです。
それをキャンセルするには、以下のように書いてエンターを押します。
*cc
学習キャンセルがうまくいった場合は、以下のように表示されます。
cc;ok
失敗すると以下のような文字列が返ってきます。
cc;err;[エラーコード]
実際に、学習をキャンセルさせると以下のように表示されます。
*ic;1 *cc cc;ok ic;err;002
タイマーをセットする
iRemocon Wi-Fiでは、登録したリモコン信号を時間指定してタイマー実行することができます。
タイマーを設定するには、以下のように書きます。
tm;[リモコン番号または文字列];[予約時刻];[リピート秒/曜日]
この、予約時刻の設定は、ちょっと面倒くさいです。
予約時間は、「1970/1/1 09:00:00 (UTC+0900)」からの秒数を指定しなければなりません。例えば「2020/1/1 00:00:00」を予約時間にする場合は、1577804400としなければなりません。iRemocon Wi-Fiで時間を指定する場合は、全てこの数字形式で書く必要があります。
タイマー設定がうまくいった場合は以下のように表示されます。
tm;ok
失敗すると以下のような文字列が返ってきます。
tm;err;[エラーコード]
実際に、タイマーを動作させると、以下のように表示されます。
*tm;1;1420519496;86400 tm;ok
上記の例は、2015/1/6 13:44:56にタイマーを予約していて、一日おきに実行されます。
上記は、繰り返しを一日おき(8万6400秒)としていますが、リピートは必ず60秒以上間を空けて設定することが推奨されています。
タイマーリストの取得
タイマーリストを取得するには、以下のように書いてエンターを押します。
*li
タイマーリスト取得に成功した場合は、以下のように返ってきます。
tl;ok;[データ件数];[タイマー番号];[リモコン番号または文字列];[予約時刻];[リピート秒/曜日];[タイマー番号];[リモコン番号または文字列];[予約時刻];[リピート秒/曜日];[タイマー番号];[リモコン番号または文字列];[予約時刻];[リピート秒/曜日]…
[データ件数]以降は、データ件数に応じて文字列が繰り返し返されます。
タイマーリスト取得に失敗した場合は、以下のような文字列が返ってきます。
tl;err;[エラーコード]
実際に、タイマーリストを取得させると以下のようになります。
*tl tl;ok;2;1;1;1420519496;86400;2;1;1421207921;604800
プログラムから操作する場合、ここが一番処理が面倒くさいところかもしれません。
タイマーを解除する
タイマーを解除するには、以下のように書いてエンターを押します。
*td;[タイマー番号]
解除に成功した場合は、以下のように返ってきます。
td;ok
タイマー解除に失敗した場合は、以下のように返ってきます。
td;err;[エラーコード]
実際に、タイマーを解除すると以下のように表示されます。
*td;1 td;ok
iRemocon Wi-Fiに現在時刻を設定する
現在時刻を設定するには、以下のように書いてエンターを押します。
*ts;[現在時刻数字]
この[現在時刻数字]も「1970/1/1 09:00:00 (UTC+0900)」からの秒数を指定しなければなりません。
現在時刻の設定に成功した場合は、以下のように返ってきます。
ts;ok
時刻の設定に失敗した場合は、以下のように返ってきます。
ts;err;[エラーコード]
実際に、現在時刻をセットすると、以下のように表示されます。
*ts;1420430879 ts;ok
数字は、2015/1/5の 13:08頃の数字です。
iRemocon Wi-Fiから現在時刻を取得する
現在時刻を取得するには、以下のように書いてエンターを押します。
*tg
現在時刻が取得できた場合は、以下のように返ってきます。
tg;ok;[現在時刻数字]
現在の時刻の取得に失敗した場合は、以下のように返ってきます。
tg;err;[エラーコード]
実際に、現在時刻を取得した場合は、以下のように表示されます。
*tg tg;ok;1420431175
ファームバージョン番号の取得
ファームバージョン番号を取得するには、以下のように書いてエンターを押します。
*vr
iRemocon Wi-Fiの場合は、以下のようにファームウェアのバージョンだけが返ってきます。
3.0.4
このコマンドだけは、返り値の仕様が違います。エラーコマンドもありません。
照度センサー値の取得
ここからが、iRemocon Wi-Fiから新たに追加されたコマンドです。
照度センサーの値を取得するには、以下のように書いてエンターを押します。
*li
照度センサーの値を取得できた場合は、以下のように返ってきます。
li;ok;[照度(ルクス)]
照度センサー値の取得に失敗した場合は、以下のように表示されます。
li;err;[エラーコード]
実際に照度センサー値を取得した場合は、以下のように表示されます。
*li li;ok;10.00
現時点での、僕の部屋の明るさは、10ルクスということになります。
湿度センサー値の取得
湿度センサーの値を取得するには、以下のように書いてエンターを押します。
*hu
湿度センサーの値を取得できた場合は、以下のように返ってきます。
hu;ok;[湿度(%)]
湿度センサー値の取得に失敗した場合は、以下のように表示されます。
hu;err;[エラーコード]
実際に湿度センサー値を取得した場合は、以下のように表示されます。
*hu hu;ok;45.13
現時点での、僕の部屋の湿度は45.13%ということになります。
温度センサー値の取得
温度センサーの値を取得するには、以下のように書いてエンターを押します。
*te
温度センサーの値を取得できた場合は、以下のように返ってきます。
te;ok;[温度(℃)]
温度センサー値の取得に失敗した場合は、以下のように表示されます。
te;err;[エラーコード]
実際に温度センサー値を取得した場合は、以下のように表示されます。
*te te;ok;27.18
現時点での、僕の部屋の温度は27.18℃ということになります。
照度・湿度・温度を一度に取得
各種センサーの値を取得するには、以下のように書いてエンターを押します。
*se
各種センサーの値を取得できた場合は、以下のように返ってきます。
se;ok;[照度(ルクス)];[湿度(%)];[温度(℃)]
各種センサー値の取得に失敗した場合は、以下のように表示されます。
se;err;[エラーコード]
実際に各種センサー値を取得した場合は、以下のように表示されます。
*se se;ok;10.00;45.53;27.55
現時点での、僕の部屋の照度は10ルクス、湿度は45.53%、温度は27.55℃ということになります。
これまでの操作
これまで操作したもののログはこんな感じになります。
*au ok *is;1 is;ok *is;1 is;ok *ic;1 *cc cc;ok ic;err;002 *tm;1;1420519496;86400 tm;ok *tl tl;ok;1;1;1;1420519496;86400 *tm;1;1421207921;604800 tm;ok *tl tl;ok;2;1;1;1420519496;86400;2;1;1421207921;604800 *td;1 td;ok *ts;1420430879 ts;ok *tg tg;ok;1420431175 *li li;ok;10.00 *hu hu;ok;45.13 *te te;ok;27.18 *se se;ok;10.00;45.53;27.55
まとめ
iRemocon Wi-Fiは、ローカルIPさえ分かってしまえば、このようにWindowsのコマンドプロンプトから、ちょっとしたコマンドで操作することができます。
もし、誰かの目の前で、部屋中の家電をコマンドで操作すれば「こいつできる!」と思われるかもしれません。というか、「引くわー」となる可能性が高いような気がします。
それはさておき、telnetでコマンドを発行するソフトでも作れば、自分だけのリモコンを作ったりすることもできます。
次は、プログラムを利用して、簡単なiRemocon操作ソフトを作ってみたいと思います。
iRemocon Wi-Fiを簡単なサンプルアプリで操作する方法を書きました。古いDelphiですがソースつきです。