
配布ページへ
Kotoshiroヘルプ目次
v0.3からユーザが、温度・湿度情報を元にスクリプトでKotoshiroに登録されているリモコン信号を制御できるようになり、家電をある程度自動で操作できるようになりました。
この機能を用いれば
「気温30度以上、湿度70-80%は熱中症が起こりやすい条件なので、冷房点けていのちをだいじに」
「温度が33度を超えたら、冷房16度でガンガンいこうぜ」
「温度28度までは、エアコンなどいらん!でんきをせつやく」
的な命令を、自作することも可能です。他にも、天気関連のAPIを公開している所から次の日の時間ごとの予想気温などを取得して、それに合わせてエアコンの温度を設定するなんてこともできると思います。Kotoshiroに登録してあるリモコンなら、エアコン以外も操作することができるので、使い方はユーザー次第。部屋が自分好みの快適空間になる呪文を是非作成してみてください。
スクリプトは、VBScript(.vbs)かJavaScript(.js)を利用することができます。とりあえずここでは、VBScriptでエアコンを操作する例を書きたいと思います。
VB Scriptエアコン操作サンプル
まず、「Kotoshiro\scripts」あたりに、「スクリプト名.vbs」といった具合にファイルを作成し、テキストエディタで開きます。
次に、以下のようにスクリプトを記述します。
'以降はコメントなので書く必要はありません。
'【リモコン制御関数の書き方】
'処理は必ずFunction RemoconControl(temp, humid)という
'関数を作ってその中に書き込んでください。
'[引数]
'temp = 温度(Double)
'humid 湿度(Double)
'[戻り値]
'RemoconControl
'動作させたいリモコンボタンのリモコン番号を返すと、
'登録されているリモコン信号が送信されます。
'リモコンを動作させたくない場合は、0を返してください。
'
'温度(temp)と湿度(humid)の情報を元にエアコンを操作する例
Function RemoconControl(temp, humid)
'設定項目----------------------------------
temp_on = 28.0 'エアコンを点ける温度
temp_off = 24.0 'エアコンを消す温度
aircon_on_no = 23 'エアコン「電源 入」もしくは「○○度」のリモコン番号
aircon_off_no = 24 'エアコン「電源 切」のリモコン番号
'------------------------------------------
'以下実施部サンプル
'デフォルト値 = 0, 何もしないときは0を返すようにする
RemoconControl = 0
if (temp >= temp_on) then '温度がtemp_on以上の時
RemoconControl = aircon_on_no '「電源 入」のリモコン番号を返す
elseif (temp <= temp_off) then '温度がtemp_off以下の時
RemoconControl = aircon_off_no '「電源 切」のリモコン番号を返す
end if
End Function
内容を大まかに説明すると、温度(室温)が28度以上になったら冷房の「電源 入」ボタンが実行され、24度以下になったら冷房の「電源 切」ボタンが実行されます。リモコン番号については、お使いの環境のものに合わせてください。
戻り値(RemoconControl)にリモコン番号か0を返すことになっています。複雑な制御関数を作って室温を細かく調整などということも出来ると思います。
JavaScriptエアコン操作サンプル
上記のコードをJavaScriptで書くと以下の様になります。ファイル名は「スクリプト名.js」といった感じで、拡張子をjsにして作成してください。
//【リモコン制御関数の書き方(JavaScript)】
//処理は必ずfunction RemoconControl(temp, humid)という
//関数を作ってその中に書き込んでください。
//[引数]
//temp = 温度(Double)
//humid 湿度(Double)
//[戻り値]
//return
//動作させたいリモコンボタンのリモコン番号を返すと、
//登録されているリモコン信号が送信されます。
//リモコンを動作させたくない場合は、0を返してください。
//
//温度(temp)と湿度(humid)の情報を元にエアコンを操作する例
function RemoconControl(temp, humid){
//設定項目----------------------------------
temp_on = 28.0 //エアコンを点ける温度
temp_off = 24.0 //エアコンを消す温度
aircon_on_no = 23 //エアコン「電源 入」もしくは「○○度」のリモコン番号
aircon_off_no = 24 //エアコン「電源 切」のリモコン番号
//------------------------------------------
//以下実施部サンプル
//デフォルト値 = 0, 何もしないときは0を返すようにする
result = 0
if (temp >= temp_on) { //温度がtemp_on以上の時
result = aircon_on_no //「電源 入」のリモコン番号を返す
} else if (temp <= temp_off) { //温度がtemp_off以下の時
result = aircon_off_no //「電源 切」のリモコン番号を返す
}
return result
}
エアコン制御例(テスト中)
とりあえず試しに、7月の夜(0時~8時台まで)の簡単なエアコン制御関数を書いてみました。昼間は起きているので、自動で制御しなくてもよいですが夜中は勝手に温度を保ってくれると楽なので、今自分でも試しに使ってみています。
'7月夜のエアコン操作
Function RemoconControl(temp, humid)
RemoconControl = 0
m = Month(Now)
h = Hour(Now)
if m = 7 then '7月
if (h >= 0) and (h <= 9) then '0~9時台
if (temp >= 27) then
RemoconControl = 107 'ドライ10゚C
elseif (temp >= 26.5) then
RemoconControl = 63 'ドライ16゚C
elseif (temp >= 26) then
RemoconControl = 65 'ドライ18゚C
elseif (temp <= 24) then
RemoconControl = 62 'ドライOFF
elseif (temp <= 24.5) then
RemoconControl = 76 'ドライ28゚C
elseif (temp <= 25.5) then
RemoconControl = 69 'ドライ22゚C
end if
end if
end if
End Function
これを実行すれば、夜中の室温が25.5℃~26℃に集束するようになります。ただし、気温の高い地域の場合は、もっと部屋を冷やす設定にしなければなりませんし、気温の低い地域では上記のコードだと部屋が冷えすぎてしまうかもしれません。作者の部屋にあるよな古いエアコンではなく、新しいエアコンだと冷やす力が強いのでまた変わってくるのかもしれません。ですので制御スクリプトは環境に合わせて書く必要があります。
制御スクリプトの設定・テスト方法
制御スクリプトを書き終えたら、[ツール][設定][温度・湿度]の[スクリプトで制御]にチェックを入れ、[サンプリング間隔]を設定し、[制御スクリプト]に作成したスクリプトを選択してください。

[サンプリング間隔]で設定した時間毎に、スクリプトが読み込まれリモコン制御が実行されます。
[テスト]ボタンを押すと、制御スクリプトがテスト実行されます。
リモコン信号が送信された場合は「送信ログ」に実行結果が表示されます。

スクリプトにエラー等がある場合は、以下のようにエラーがダイアログ表示されます。

※夏なのに暖房が入ってしまったなど起こっても、自身が書いたスクリプトの実行結果については自己責任ですのでよろしくお願いします。
続き:機能強化された制御スクリプトの書き方
タグ:Kotoshiro iRemocon