エアコン、照明、電動ブラインド、電子錠、温度計、スマートメーターの合計6種類の機器オブジェクトが含まれています。 Processingで作られています。
2020/12/24 moscow4ghさんによるスマートメーターのバグフィックスを適用。
2017/9/20 ControlP5はWindowsやLinuxで動かした際にもOutdatedだったので、いっそのことmisc/RequiredLibs.zipに入れました。Mac版の特別な説明を削除しました。
2017/9/6 zipの中身が古かったのでexportし直しました。あと_f_Back/も全zipに追加しました。Mac向け解説をREADMEに追加しました。@ikesatoさんありがとうございます!
2016/12/5 スマートメーターの実装をちょっとだけよくしたのと瞬時値・履歴データを画面に表示するようにしました。
2016/12/2 Processing3に対応しました。一石アンプさんありがとうございます!
2015/12/25 適当ですがスマートメーターオブジェクトを加えました。
以下からお好きなものを落として使ってください。Win32以外はJavaが必要だと思います。また、Processing IDEから実行するにはlibrariesフォルダ内にOpenECHO for ProcessingとControlP5が必要です。一応固めておきました。 Linux版はMoekadenRoomというファイルに実行属性をつけて走らせるとよいと思います。
※Macはエクスポートできなかったので、Processing IDEから実行してください。
※ソースコードのライセンスはMITライセンスにします。ただし、画像はそのまま二次利用しないでください。
※中で使っているOpenECHOもMITです。ControlP5はLGPLです。
- このアプリは2種類の入力を受け付けます。1. ECHONET Liteネットワークからの入力、2. ユーザーのマウスによる入力です。
- 温度センサーについては、本来外部入力によりその値を変更することはできませんが、エミュレータなので、ユーザーがマウスで温度計の右にあるスライダを動かすと値を変更できるようにしました。
- 本プログラムが走っているのにECHONET Liteネットワークから機器オブジェクトが見えない場合、ウィルス対策ソフトやファイアーウォールが悪さをしているかもしれません。ECHONET LiteはUDPのポートを開けて使いますのでそれを防がれてしまうと通信できません。トラブルの時はファイアーウォールを切る必要があるかもしれません。ただし、もちろんその間は外部からの攻撃に対して脆弱になりますので、自己責任でお願いします。
- 1つのPCで2つ以上立ち上げてはいけません。本エミュレータは「ノード」を一つ作り、その中に機器オブジェクトを4つ入れるようになっています。IPv4で実装されたECHONET Liteでは、一つのIPアドレスに対してノードは1つでないといけないという制約があります。1つのPCで二つエミュレータを立ち上げると、ノードが2つになってしまうわけです。
- 萌家電の背景画像を使っただけなので、萌えキャラは出てきません
オブジェクト名(EOJ) | プロパティ(EPC) | Values(EDT) (太字は初期値) |
---|---|---|
Home Air Conditioner 0x0130 |
電源 0x80 |
[0x31]:Off [0x30]:On |
動作モード 0xb0 |
[0x41]:Auto [0x42]:Cool [0x43]:Heat [0x44]:Dry [0x45]:Wind |
|
設定温度 0xb3 |
1byteで符号付設定温度。 Default=[20](=20℃) |
|
照明オブジェクト 0x0290 |
電源 0x80 |
[0x31]:Off [0x30]:On |
電動ブラインドオブジェクト 0x0260 |
開閉状態 0xe0 |
[0x41]:Open [0x42]:Close |
電子錠オブジェクト 0x026F |
施錠状態 0xe0 |
[0x41]:Locked [0x42]:Unlocked |
温度計オブジェクト 0x0011 |
温度 0xe0 |
Big endian 2byteで 符号付温度を0.1℃ 単位で表す (Default [0,220] = 22.0℃) |
スマートメーターオブジェクト 0x0288 |
履歴有効桁数 0xd7 |
1~8:[8] 正直言って、守っていない。 |
積算電力量kWh 0xe0 |
現在は30分間隔サンプルの最新値を返す | |
積算電力量の単位 0xe1 |
0x0~0x0D. [0x02]:0.01kWh |
|
積算電力履歴(正方向) 0xe2 |
1~2 バイト目:収集日 0x0000~0x0063(0~99) 3 バイト目以降:積算電力量計測値 (4byteづつ48サンプル。Big Endian。 データがないところは0xFFFFFFFEが返る) |
|
積算履歴収集日 0xe5 |
0:当日 1~99:前日の日数 [0]:当日 |
|
瞬時電力計測値 0xe7 |
Watt単位。4 bytes ランダム値 |
|
瞬時電流計測値 0xea |
0.1A単位。2byteづつR相・T相。 [瞬時電力を100で割ったもの] |
|
30分毎の最新積算電力量(正方向) 0xea |
計測年月日(4bytes) YYYY:MM:DD 計測時刻(3bytes) hh:mm:ss 積算電力量(4bytes) |
※スマートメーターは、瞬時位置も履歴もランダムな値を生成して返します。エアコンか照明をつけたり消したりするとそれぞれ300W,100Wくらい変化するようにしてみました。ただし、瞬時値をどういじっても、履歴データは完全ランダムに追加されていきますので悪しからず。もし返答される値を好きに設定したい場合は、SoftElectricEnergyMeterクラスの最後のほうにあるgetInstantaneousEnergy()やgetCumlativeEnergy()を変更してください。