Skip to content

Latest commit

 

History

History
executable file
·
120 lines (110 loc) · 7.8 KB

README.jp.md

File metadata and controls

executable file
·
120 lines (110 loc) · 7.8 KB

English

MoekadenRoom - An ECHONET Lite Emulator

エアコン、照明、電動ブラインド、電子錠、温度計、スマートメーターの合計6種類の機器オブジェクトが含まれています。 Processingで作られています。

Updates

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 適当ですがスマートメーターオブジェクトを加えました。

Download executables

以下からお好きなものを落として使ってください。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()を変更してください。

Contributors

Shigeru Owada
Fumiaki Tokuhisa
Issekiamp san
ikesato san