EnOceanセンサー

EnOcean with Lua

EnOcean向けのセンサーハンドラで、Lua言語を使ってサポートモデルをユーザーが自由に拡張できます。
また、Luaハンドラは"devices"ディレクトリに、ぷらっとホームが標準的に提供するセンサーハンドラが入っており、ユーザー拡張用には"devices_custom"ディレクトリが用意されています。
このディレクトリには新規にサポートするデバイスのハンドラだけではなく、ぷらっとホームの提供する標準ハンドラを改造して置くことができます。

例えば"EEP:A50205"と言うセンサーでクラウドに送信するキー名"temperature"となっているのを"temp"と変更したい場合、"devices"ディレクトリから"a50205.lua"というファイルをダウンロードします。

a50205 = {}
function a50205.a50205_decode(jo, data)
local temperature = pdHandlerUtil.round((255 - string.byte(data, 3)) * 40 / 255, 2)
jo.temperature = temperature
end
return a50205

この行

jo.temperature = temperature

jo.temp = temperature

と変更します。
そして変更したファイルを"devices_custom"ディレクトリにファイル名を変更せずに"a50205.lua"と言う名前のままアップロードしてください。
この作業だけでオリジナルの送信データを作成できます。

また、新規のデバイスを追加する時は、"devices_custom"ディレクトリに"skelton.lua"というファイルが置いてあるので、このファイルをテンプレートとして使ってください。
このファイルの中の"skelton"と言う部分をEEPプロファイル名に変更して使います。 上記の"EEP:A50205"のソースコードが参考になると思います。
あとはxxxxxx.xxxxxx_decode関数の中にバイナリデータからの変換ルーチンを用意するだけです。
完成したらEEPプロファイル名.luaというファイル名で"devices_custom"ディレクトリにアップロードしてください。
なお、"skelton.lua"テンプレートにあるxxxxxx.xxxxxx_decode関数内のルーチン

function skelton.skelton_decode(jo, data)
pdHandlerUtil.log_debug("skelton")
local str
str = pdHandlerUtil.bin2str(data, #data)
pdHandlerUtil.log_info("str: ", str)
if str ~= nil then
jo.data = str
end
end

は、バイナリデータをそのまま16進数ASCII文字列に変えているだけなので、変換ルーチンを別途用意する場合は全て不要になります。

info

ファームウェア 1.x、2.x は、Lua に対応しておりません。
EEPタイプとGPタイプに対応しています。
EEPタイプはプロファイルコードで検索してください。
GPタイプはEEPの欄に"GP"から始まるプロファイル名を入力します。(GP_xxxx)
GPセンサーはファームウェア 4.xからのサポートになります。

■ EEPセンサー

人感センサー (EEP : A50701)

■ データサンプル :

{
"deviceId": "0400197A",
"time": "2016-03-14T16:17:02.269+09:00",
"svc": 4.7647,
"pirs": "on",
"EEP": "A50701",
"memo": "Occupancy Sensor",
"rssi": -71
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6svc供給電圧Double[V]
7pirs検知結果String'on' または 'off'

あけしめセンサー (EEP : D50001)

■ データサンプル :

{
"deviceId": "04000A1B",
"time": "2016-03-14T16:16:52.525+09:00",
"contact": 0,
"EEP": "D50001",
"memo": "Contacts and Switches",
"rssi": -65
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6contact開閉ステータスInteger0: Open, 1: Closed

温度センサー (EEP : A50205)

■ データサンプル :

{
"deviceId": "04000C66",
"time": "2016-03-14T16:16:59.958+09:00",
"temperature": 25.25,
"EEP": "A50205",
"memo": "Temperature Sensors",
"rssi": -82
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]

温湿度センサー (EEP : A50402)

■ データサンプル :

{
"deviceId": "0400267B",
"time": "2017-08-31T14:26:39.283+09:00",
"temperature": 28.16,
"humidity": 62.20,
"EEP": "A50402",
"memo": "Temperature and Humidity Sensor",
"rssi": -66
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]

温湿度センサー (EEP : A50403)

■ データサンプル :

{
"deviceId": "040005C6",
"time": "2016-03-14T16:15:58.904+09:00",
"temperature": 25.12,
"humidity": 35.68,
"EEP": "A50403",
"memo": "Temperature and Humidity Sensor",
"rssi": -59
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]

2 相式 CT センサー (EEP : A51201)

■ データサンプル :

{
"deviceId": "0400AE56",
"time": "2016-03-14T16:15:58.904+09:00",
"electricity": 15.0,
"dataType":"W",
"EEP": "A51201",
"memo": "Automated Meter Reading (AMR)",
"rssi": -87
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6electricity電流/電圧/電力値Double現在値または累積値
7dataTypeデータタイプString'kWh' または 'W'

3 相式 CT センサー (EEP : D23202)

■ データサンプル :

{
"deviceId": "04015100",
"time": "2016-03-14T16:15:58.904+09:00",
"channel1": 30.0,
"channel2": 15.0,
"channel3": 10.0,
"EEP": "D23202",
"memo": "A.C. Current Clamp",
"rssi": -63
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6channel1チャネル1電流値Double[A] (現在値)
7channel2チャネル2電流値Double[A] (現在値)
8channel3チャネル3電流値Double[A] (現在値)

大気圧センサー (EEP : A50501)

■ データサンプル :

{
"deviceId": "0401520B",
"time": "2016-06-07T15:58:22.927+09:00",
"barometer": 1010.85,
"telegram_type": "Hearbeat",
"EEP": "A50501",
"memo": "barometer",
"rssi": -71
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6barometer気圧Double[hPa]
7telegram_type電文タイプString'Hearbeat' または 'Event triggered'

照度センサー (EEP : A50601)

■ データサンプル :

{
"deviceId": "04007AF5",
"time": "2016-06-07T15:58:28.150+09:00",
"svc": 2.7800,
"ill1": 600.0000,
"ill2": 300.0000,
"EEP": "A50601",
"memo": "ill",
"rssi": -65,
"rs":0
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6svc供給電圧Double[V]
7ill1照度1Double[lux]
8ill2照度2Double[lux]
9rs測定範囲Integer

照度センサー (EEP : A50602)

■ データサンプル :

{
"deviceId": "04004715",
"time": "2016-06-07T15:58:28.150+09:00",
"svc": 2.7800,
"ill1": 260.0000,
"ill2": 260.0000,
"EEP": "A50602",
"memo": "ill",
"rssi": -65,
"rs":0
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6svc供給電圧Double[V]
7ill1照度1Double[lux]
8ill2照度2Double[lux]
9rs測定範囲Integer

照度センサー (EEP : A50605)

■ データサンプル :

{
"deviceId": "04004F5F",
"time": "2016-06-07T15:58:28.150+09:00",
"svc": 2.7800,
"ill1": 360.0000,
"ill2": 380.0000,
"EEP": "A50605",
"memo": "ill",
"rssi": -65,
"rs":0
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6svc供給電圧Double[V]
7ill1照度1Double[lux]
8ill2照度2Double[lux]
9rs測定範囲Integer

CO2 センサー (EEP : A50904)

■ データサンプル :

{
"deviceId": "040004FF",
"time": "2016-06-07T15:34:15.126+09:00",
"humidity": 52.000000,
"temperature": 28.000000,
"concentration": 690,
"EEP": "A50904",
"memo": "CO2",
"rssi": -84
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]
8concentrationCO2濃度Integer[ppm]

デジタル入力(EEP : A53005)

■ データサンプル :

{
"deviceId": "04002D68",
"time": "2016-06-07T15:44:09.621+09:00",
"vdd": 3.1576,
"signal_type": "Heart beat signal",
"count": 127,
"EEP": "A53005",
"memo": "button",
"rssi": -58
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6vdd供給電圧Double[V]
7signal_type信号種別String'Normal signal' または 'Heart beat signal'
8count序数Integer0~127

2 ロッカースイッチ (EEP : F60204)

■ データサンプル :

{
"deviceId": "002BC9C8",
"time": "2016-07-26T10:45:09.625+09:00",
"ebo": "pressed",
"rbi": "released",
"rbo": "released",
"rai": "pressed",
"rao": "released",
"EEP": "F60204",
"memo": "2 rocker switch",
"rssi": -70
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6eboエネルギー状態String'pressed' または 'released'
7rbiロッカースイッチBの状態IString'pressed' または 'released'
8rboロッカースイッチBの状態OString'pressed' または 'released'
9raiロッカースイッチAの状態IString'pressed' または 'released'
10raoロッカースイッチAの状態OString'pressed' または 'released'

マルチセンサ (EEP : D21441)

■ データサンプル :

{
"deviceId": "04117EAE",
"time": "2020-06-10T10:45:09.625+09:00",
"temperature": 24.25,
"humidity": 50.51,
"ill": 153,
"accelS": 0,
"accelX": 0.01,
"accelY": -0.02,
"accelZ": 1.01,
"contact": 0,
"EEP": "D21441",
"memo": "multi function sensors",
"rssi": -81
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]
8ill照度Integer[lux]
9accelS加速度ステータスInteger
10accelXX方向加速度Double[G]
11accelYY方向加速度Double[G]
12accelZZ方向加速度Double[G]
13contactマグネットコンタクトInteger0: Open, 1: Closed

マルチセンサ (EEP : D21440)

■ データサンプル :

{
"deviceId": "04117EAE",
"time": "2020-06-10T10:45:09.625+09:00",
"temperature": 24.25,
"humidity": 50.51,
"ill": 153,
"accelS": 0,
"accelX": 0.01,
"accelY": -0.02,
"accelZ": 1.01,
"EEP": "D21440",
"memo": "multi function sensors",
"rssi": -81
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]
8ill照度Integer[lux]
9accelS加速度ステータスInteger
10accelXX方向加速度Double[G]
11accelYY方向加速度Double[G]
12accelZZ方向加速度Double[G]

温湿度センサー (EEP : A50401)

■ データサンプル :

{
"deviceId": "04117EAE",
"time": "2020-06-10T10:45:09.625+09:00",
"temperature": 24.25,
"humidity": 50.51,
"EEP": "A50401",
"memo": "Temperature and Humidity Sensor",
"rssi": -66
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]

照度センサー (EEP : A50603)

■ データサンプル :

{
"deviceId": "04117EAE",
"time": "2020-06-10T10:45:09.625+09:00",
"svc": 2.7800,
"ill": 260,
"EEP": "A50603",
"memo": "ill",
"rssi": -65
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6svc供給電圧Double[V]
7ill照度Integer[lux]

マルチセンサ (EEP : A51405)

■ データサンプル :

{
"deviceId": "04117EAE",
"time": "2020-06-10T10:45:09.625+09:00",
"svc": 2.7800,
"vib": 0,
"EEP": "A51405",
"memo": "multi-func sensor",
"rssi": -65
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6svc供給電圧Double[V]
7vib振動Integer0: No vibration detected, 1: Vibration detected

RAW データ時

■ データサンプル :

{
"deviceId": "0400197A",
"time": "2016-03-14T16:45:32.643+09:00",
"data": "55000c020ae66200000400197a1c080b8720013da6",
"EEP": "A50701",
"memo": "raw data",
"rssi": -63
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPEnOcean プロファイルStringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6dataペイロードString

■ GPセンサー

ユー・アール・ディー社製

3相式CTセンサー(EEP : GP_CWD_3)

  • 対応CTの型式
    • CTT-10-CLS-WLS50
    • CTT-16-CLS-WLS100
    • CTT-24-CLS-WLS250

■ データサンプル :

{
"deviceId": "0400A793",
"time": "2021-02-24T16:15:58.904+09:00",
"channel1": 30.0,
"channel2": 15.0,
"channel3": 10.0,
"EEP": "GP_CWD_3",
"memo": "A.C. Current Clamp",
"rssi": -88
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6channel1チャネル1電流値Double[A] (現在値)
7channel2チャネル2電流値Double[A] (現在値)
8channel3チャネル3電流値Double[A] (現在値)

3相式CTセンサー φ36用(EEP : GP_CWD_3_600)

  • 対応CTの型式
    • CTT-36-CLS-WLS600

■ データサンプル :

{
"deviceId": "0400A793",
"time": "2021-02-24T16:15:58.904+09:00",
"channel1": 30.0,
"channel2": 15.0,
"channel3": 10.0,
"EEP": "GP_CWD_3_600",
"memo": "A.C. Current Clamp",
"rssi": -88
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6channel1チャネル1電流値Double[A] (現在値)
7channel2チャネル2電流値Double[A] (現在値)
8channel3チャネル3電流値Double[A] (現在値)

ワッティー社製

温湿度センサー(EEP : GP_HYHU)

  • 対象製品型式
    • HYHU-1
    • HYHU-3

■ データサンプル :

{
"deviceId": "051AAB26",
"time": "2021-02-24T16:15:58.904+09:00",
"temperature":26.177615014878,
"humidity":62.424658579385,
"battery":2.9647058823529,
"EEP": "GP_HYHU",
"memo": "HYHU-1/3",
"rssi": -55
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature温度Double[℃]
7humidity湿度Double[%]
8batteryバッテリー電圧Double[V] (現在値)

CO2温湿度センサー(EEP : GP_HYCO)

  • 対象製品型式
    • HYCO

■ データサンプル :

{
"deviceId": "051AAB26",
"time": "2021-02-24T16:15:58.904+09:00",
"co2": 852.67,
"temperature":26.177615014878,
"humidity":62.424658579385,
"EEP": "GP_HYCO",
"memo": "HYCO",
"rssi": -55
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6co2CO2濃度Double[ppm] (現在値)
7temperature温度Double[℃]
8humidity湿度Double[%]

2温度センサー(EEP : GP_HYHQ)

  • 対象製品型式
    • HYHQ

■ データサンプル :

{
"deviceId": "051AAB26",
"time": "2021-02-24T16:15:58.904+09:00",
"temperature1":26.177615014878,
"temperature2":26.177615014878,
"EEP": "GP_HYHQ",
"memo": "HYHQ",
"rssi": -55
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature1温度1Double[℃]
7temperature2温度2Double[℃]

4温度センサー(EEP : GP_HYHQ_FF)

  • 対象製品型式
    • HYHQ-FF

■ データサンプル :

{
"deviceId": "051AAB26",
"time": "2021-02-24T16:15:58.904+09:00",
"temperature1":26.177615014878,
"temperature2":26.177615014878,
"temperature3":26.177615014878,
"temperature4":26.177615014878,
"battery":2.9647058823529,
"EEP": "GP_HYHQ_FF",
"memo": "HYHQ_FF",
"rssi": -55
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6temperature1温度1Double[℃]
7temperature2温度2Double[℃]
8temperature3温度3Double[℃]
9temperature4温度4Double[℃]
10batteryバッテリー電圧Double[V] (現在値)

黒球温湿度センサー(EEP : GP_WBGT)

  • 対象製品型式
    • WBGT-7500

■ データサンプル :

{
"deviceId": "051AAB26",
"time": "2021-02-24T16:15:58.904+09:00",
"humidity":62.424658579385,
"temperature":26.177615014878,
"temperatureB":26.177615014878,
"battery":2.9647058823529,
"EEP": "GP_WBGT",
"memo": "WBGT-7500",
"rssi": -55
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6humidity湿度Double[%]
7temperature温度Double[℃]
8temperatureB黒球温度Double[℃]
9batteryバッテリー電圧Double[A] (現在値)

PMセンサー(EEP : GP_HYPM)

  • 対象製品型式
    • HYPM

■ データサンプル :

{
"deviceId": "04016436",
"time":"2021-02-22T10:53:40.943+09:00"
"pm1_0":26.474402990768,
"pm2_5":26.886396581979,
"pm4_0":26.886396581979,
"pm10_0":26.901655603876,
"EEP": "GP_HYPM",
"memo": "HYPM",
"rssi": -86
}
#JSONキー内容データ型常駐補足
1deviceIdIDString
2timeデータ取得日時StringISO8601 拡張書式
3EEPGPプロファイル名StringWEB-UI にて設定した値
4rssi受信信号強度Integer
5memoメモStringWEB-UIにて設定した値
6pm1_0PM1.0Double[μg/㎥]
7pm2_5PM2.5Double[μg/㎥]
8pm4_0PM4.0Double[μg/㎥]
9pm10_0PM10.0Double[μg/㎥]