記事一覧

【Kotoshiroヘルプ】温度・湿度計表示方法

  • このエントリーをはてなブックマークに追加

配布ページへ
Kotoshiroヘルプ目次


温度・湿度計機能、グラフ機能追加

v0.2より、Kotoshiroに温度・湿度計機能を追加できるようになりました。

部屋の温度がわかると、家電(特にエアコン)利用の参考になるので何かと便利です。温度・湿度計は、1分ごとに計測しグラフ化するようにしたので、エアコンを○○度にしたら気温と湿度がどのように変化するか、などを見て体調管理をするのに役立ったりします。

※温度・湿度表示、グラフ化をしたい場合は以下のデバイスが必要です。(温度・湿度計機能が必要のない場合は、無くても問題なし。)

USB温度・湿度計モジュール
USB温度・湿度計モジュール用ケース

上のデバイスを入手し、お使いのPCのUSBポートに差してKotoshiroを起動(起動している場合は再起動)することで、温度・湿度機能が有効になります。


拡張温度・湿度計機能追加

v0.4より、「USB温度・湿度計モジュール」をさらにもう一つ取り付けれるようになり、外気温・湿度などを見ながらトータル的に部屋の空調を管理できるようになりました。

拡張温度・湿度計機能を使うには、さらに以下のデバイスの追加が必要です。(温度・湿度計機能が必要のない場合は、無くても問題なし。)

USB温度・湿度計モジュール
USB温度・湿度計モジュール用ケース

拡張モジュールを用いることにより、以下のように室温と外気の推移なども見ることができます。

明け方、外気温がグングン上昇し、夜露などがなくなるせいか湿度がどんどん下がる。それに合わせて部屋の温度も上がってきたので、冷房を20℃にして室温を下げたときの図。

その後も、外気温はドンドン上がっていくけど、冷房のおかげで室温はある程度一定の図。


拡張温度・湿度計機能は、特に外気温を計測するためのものではなく、室温を2点から監視したり、別の部屋と比較したりと、アイディア次第で自由に使えます。

取り付け方法は、先程書いたものと同じでデバイスを入手し、お使いのPCのUSBポートに差してKotoshiroを起動(起動している場合は再起動)することで、温度・湿度機能が有効になります。最初に取りつけPCに認識されたたモジュールが、単なる温度・湿度計となり、2番目に認識されたモジュールが拡張温度・湿度計用に割り当てられます。


室温は、思った以上に外気温との関わりが深いものですので、外気温・外の湿度情報を手に入れることによって、室温設定の重要な参考情報の一つになります。

続き:エアコンを自動制御して室温を一定にする方法

タグ:Kotoshiro iRemocon

  • このエントリーをはてなブックマークに追加

【Kotoshiroヘルプ】機能強化された制御スクリプトの書き方

  • このエントリーをはてなブックマークに追加

配布ページへ
Kotoshiroヘルプ目次


v0.4で、多少スクリプトの仕様変更があり、機能が強化されました。

以前のリモコン制御スクリプトの書き方では、スクリプト内の関数でリモコン番号を返すだけの仕様でしたがv0.4以降は機能を強化し、文字列をエアコン操作コマンドとして返すことで、エアコンの動作を以前よりは思い通りに動作させることができるようになりました。

ただし、この動作させるには、温度・湿度計表示方法で書かれているように機器を取り付け、エアコンの設定を行ってください。(※デフォルトの設定を使っている場合は、設定不要)


エアコン制御関数の仕様

(※注 以前までリモコン番号を返す関数だったので関数名はGetRemoconNoだったのですが、エアコン操作コマンドを返すことも念頭においた違和感のない関数名として、関数名をRemoconControlに変更しました。)

【リモコン制御関数の書き方(JavaScript)】
※エアコン以外の暖房器具には絶対使用しないでください。

処理は必ずfunction RemoconControl(temp, humid)という
関数を作ってその中に書き込んでください。
[引数]
temp = 温度(Double)
humid 湿度(Double)
[戻り値]
return
動作させたいリモコンボタンのリモコン番号を返すと、
登録されているリモコン信号が送信されます。
リモコンを動作させたくない場合は、0を返してください。

<戻り値を文字列で返す場合(大文字小文字関係なし)>
"TempUp" or "tu" or "up" = 現在の運転モードのエアコン設定温度を一段階上げる
"TempDown" or "td" or "down" = 現在の運転モードのエアコン設定温度を一段階下げる
"CoolerUp" or "cu" = 冷房に指定してエアコン設定温度を一段階上げる
"CoolerDown" or "cd" = 冷房に指定してエアコン設定温度を一段階下げる
"HeaterUp" or "hu" = 暖房に指定してエアコン設定温度を一段階上げる
"HeaterDown" or "hd" = 暖房に指定してエアコン設定温度を一段階下げる
"DehumidifierUp" or "du" = 除湿に指定してエアコン設定温度を一段階上げる
"DehumidifierDown" or "dd" = 除湿に指定してエアコン設定温度を一段階下げる

"CoolerMax" or "cmax" = 冷房に登録してある設定温度で一番高いものにします
"CoolerMin" or "cmin" = 冷房に登録してある設定温度で一番低いものにします
"HeaterMax" or "hmax" = 暖房に登録してある設定温度で一番高いものにします
"HeaterMin" or "hmin" = 暖房に登録してある設定温度で一番低いものにします
"DehumidifierMax" or "dmax" = 除湿に登録してある設定温度で一番高いものにします
"DehumidifierMin" or "dmin" = 除湿に登録してある設定温度で一番低いものにします

※"xxxxMax", "xxxxMin" が連続で呼び出されても上限、下限である為
2回目以降は呼び出されません。1時間に10分ごと、6回呼び出しても
最初のものしか実行されません。間に他のエアコンボタンが呼び出された場合は
また呼び出されます。

以前はリモコン番号返すだけの関数でしたが、冷房の温度上げたり下げたり、暖房の温度を上げたり下げたり、除湿の最高設定温度もしくは最低設定温度にする、コマンド含む文字列を返す事ができるようになりました。


使用サンプル(JavaScript)

以下は簡単な使用サンプルです。

//[サンプル]
//温度(temp)と湿度(humid)の情報を元にエアコンを操作する例
//室温を大体27゚Cくらいに保つ例
function RemoconControl(temp, humid){
//設定項目----------------------------------
temp_max = 27.25 //エアコン設定温度を下げる温度
temp_min = 26.75 //エアコン設定温度を上げる温度
//------------------------------------------

//以下実施部サンプル
//デフォルト値 = 0, 何もしないときは0を返すようにする
result = 0

if (temp > temp_max) { //温度がtemp_maxより上の時
result = "TempDown" //エアコン設定温度を一段階下げる戻り値
} else if (temp < temp_min) { //温度がtemp_min未満の時
result = "TempUp" //エアコン設定温度を一段階上げる戻り値
};
return result
}

この制御関数は、部屋の湿度を27.25℃~26.75℃内におさめるコードです。これにより、平均すると室内は大体27℃に保たれます。

スクリプトが何をしているか簡単に説明すると、部屋の温度が27.25℃よりも上になったときに、エアコンの設定温度を1段階下げ、26.75℃未満になったとき、エアコンの設定温度を1段階上げて室温を一定に保つようになっています。

書いたスクリプトの設定やテスト方法は以前と同じです。以下を参考にしてください。
制御スクリプトの設定・テスト方法


複雑なスクリプトを書けば、自分の生活習慣に合ったエアコン制御関数がかけると思います。僕も今、自分の生活に合わせた制御関数を書いているので、ある程度出来上がったら、サンプルとしてブログに載せます。

続き:温度・湿度計表示方法

タグ:Kotoshiro iRemocon

  • このエントリーをはてなブックマークに追加

【Kotoshiroヘルプ】リモコン制御スクリプトの書き方

  • このエントリーをはてなブックマークに追加

ファイル 513-1.png

配布ページへ
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

  • このエントリーをはてなブックマークに追加

【Kotoshiroヘルプ】マクロの登録の仕方

  • このエントリーをはてなブックマークに追加

配布ページへ
Kotoshiroヘルプ目次


v0.2以前では、マクロを使用するのにTeraTermを利用するか、バッチファイルを書く必要があったのですが、これだと書き方を覚える必要があり、慣れないと面倒くさいのでKotoshiro独自のマクロを作成することにしました。


以下はマクロを作成する方法です。GUIでの作成なので、手軽に作成できるようになりました。

マクロの作成

ツリーのマクロを選択。

メニューの「マクロボタンの作成」を実行。

「作成・編集」ボタンを押す。

すると、以下のようなフォームが表示されるので、マクロ名をつけて、あとは実行したいリモコンボタンを登録していくだけです。リモコンボタンの実行の間に間隔を入れたい場合は待機時間を設定して追加してください。

例えば、1~12チャンを1秒間隔でザッピングするマクロの場合は以下のようになります。

マクロの順番は、D&Dで入れ替えることができます。「テスト」ボタン押すと、その場でマクロのテストをすることができます。

マクロの設定が終わったら「OK」ボタンを2度押すとマクロが作成されます。


作成されたマクロファイルは、「Kotoshiro\macros」に拡張子「.ksm」のファイルとして保存されます。

続き:TeraTermマクロを利用する前の準備

タグ:Kotoshiro iRemocon

  • このエントリーをはてなブックマークに追加

Kotoshiro v0.1、v0.2で追加された主な機能

  • このエントリーをはてなブックマークに追加

ファイル 511-1.png

配布ページへ

Kotoshiroを公開したあと、2度のマイナーバージョンアップをしましたが、そのとき付け加えた主な機能の説明です。

v0.1.x.xで追加した機能

ボイスコマンドで繰り返しリモコン信号を送信できるようにした

普通のボイスコマンドなら、

「コンピューター名、ボイスコマンド」


「コンピュータ、音量アップ」

といった感じで発声すれば、リモコン信号が一度送信されます。ただ、テレビの音量アップならボタンを連打して、音量を5段階あげるといった使い方もすると思います。

そういったときには、繰り返しを実行するボイスコマンドを用います。

繰り返し実行するボイスコマンド

「コンピューター名、ボイスコマンド、繰り返し回数」


「コンピュータ、音量アップ、5回」

とすると、音量を上げるリモコン信号が5回実行されたことと同じになります。

v0.2.x.xで追加した機能

温度・湿度計機能、グラフ機能追加

部屋の温度がわかると、家電(特にエアコン)利用の参考になるので何かと便利です。温度・湿度計は、1分ごとに計測しグラフ化するようにしたので、エアコンを○○度にしたら気温と湿度がどのように変化するか、などを見て体調管理をするのに役立ったりします。

※温度・湿度表示、グラフ化をしたい場合は以下のデバイスが必要です。(無い場合でも温度表示はできませんが動きます。)

USB温度・湿度計モジュール
USB温度・湿度計モジュール用ケース


マクロ機能をKotoshiro独自マクロにして扱いやすいようにした

以前までの機能だと、マクロを使う時はTeraTermを利用するか、バッチファイルを書く必要があったのですが、これだと書き方を覚える必要があるので、とっ付きにくく、面倒くさいのでKotoshiro独自のマクロを作成しました。

これによりGUIで作成できるようになったので、以前よりは手軽にマクロが作成できるようになりました。

これまでのように、テキストエディタで書く必要はなく、使用したいリモコンボタンを順番に追加していくだけで作成できるので、大分簡単になったのではないかと思います。「テスト」ボタンを押せば、その場でマクロのテストができます。


次のマイナーバージョンアップ(v0.3.x.x以降)では、USB温度・湿度計モジュールで取得した、温度と湿度を利用して、家電と連動させる機能を付けれればと思います。例えば、「温度が30度以上になったらエアコンを点ける」とか言った感じ。

温度と湿度の値を元にユーザーがスクリプトを書くことによって、独自のアルゴリズムで家電を制御できるようにもできればしたいです。

続き:Kotoshiro v0.3、v0.4で追加された主な機能

タグ:Kotoshiro iRemocon

  • このエントリーをはてなブックマークに追加

ページ移動