- Jelina 概要
- EMS Builder
- リファレンスマニュアル
トリガープラン
スクリプトの構文は Lua です。全体の概念(トリガー条件とアクションの分類)は トリガープラン を先に参照してください。このページでは EXPRESSION 型アクションスクリプトの書き込みパラメーター、戻り値構造、完全な例を説明します。
- トリガーロジックは他の種類のプランと同じで、異なるのはアクションのスクリプト内容です。
- 実行後、Edge-EMS Builder バックエンドがスクリプトの戻り値を解析し、指定ポイントへ内容に従って書き込みます。
注:プログラミングの基礎と制御ロジック実行の流れに関する知識が必要です。構文は Lua エンジンの規則 を参照してください。
書き込みパラメーター
Section titled “書き込みパラメーター”| パラメーター名 | 値 | 必須 | 型 | 説明 |
|---|---|---|---|---|
| dataType | Customization | はい | String | 操作するデータ型:Customization/Collection/Aggregation/Alarm/Share |
| deviceCode | DeviceA | いいえ | String | スレーブデバイスコード |
| dataKey | 功率 | はい | String | データの一意の dataKey またはアラーム種類 |
| dataValue | 15 | はい | String | データ値またはアラーム内容 |
| changeMod | true | いいえ | String | 変化時書き込みを有効にするか |
| availableDate | 2023-01-15T07:00:00+08:00 | いいえ | String | 有効開始日時(Customization) |
| expiredDate | 2023-01-15T10:00:00+08:00 | いいえ | String | 有効終了日時(Customization) |
| mqttConnectionConfigId | 100101 | いいえ | String | MQTT 接続設定 ID(Alarm) |
| topic | upload | いいえ | String | アラーム送信 Topic(Alarm) |
| qos | 1 | いいえ | String | QOS(Alarm) |
時間帯別データ(Customization)は**毎日繰り返す(DailyRepeat)**スケジュールにも対応します。
availableDate/expiredDateの代わりにavailableTime/expiredTime(HH:mm:ss形式、日付をまたぐ指定不可)を使用し、毎日適用します。短縮関数buildCustomizationWriteMap(dataKey, dataValue, availableDate, expiredDate)(DailyChange 専用)またはbuildDailyRepeatWriteMap(dataKey, dataValue, availableTime, expiredTime)(DailyRepeat 専用)を使用できます。Lua エンジンの規則 を参照してください。参照ポイントの値を取得できない場合、センチネル文字列
__Null__が挿入されます。空文字列やnilと仮定せず、${dataKey} == "__Null__"で明示的に判定してください。
local resultList = {}
-- アラーム内容を定義local errorMap = {}errorMap.timestamp = OffsetDateTime.now():unixMilli()errorMap.iotCode = ${数据9}errorMap.faultCode = ${数据9}errorMap.faultLevel = ${数据9}errorMap.faultName = ${数据9}errorMap.faultBack = ${数据9}-- アラーム内容を JSON へ変換local errorMessage = toJsonString(errorMap)
table.insert(resultList, buildCommonWriteMap("Customization", "mode", 15, "2023-01-15T07:00:00+08:00", "2023-01-15T10:00:00+08:00", true))table.insert(resultList, buildCommonAlarmMap("二级告警", "二级告警"))table.insert(resultList, buildMqttAlarmMap("一级告警", errorMessage, 1, "upload", 1))table.insert(resultList, buildCommonWriteMap("Collection", "数据10", 200, nil, nil, true))table.insert(resultList, buildCommonWriteMap("Aggregation", "温度", 20, nil, nil, false))table.insert(resultList, buildSlaveWriteMap("DeviceB", "Share", "数据3", 888, nil, nil, false))
return resultList期待される実行結果
Section titled “期待される実行結果”複数の Table を含む配列を返します。Edge-EMS Builder は配列を解析し、各オブジェクトの内容を検証して、組み立てた書き込みオブジェクトを返します。
[ { "dataType": "",//操作対象 "deviceCode": "",//スレーブデバイスの一意のコード(書き込み先のデバイスを指定) "dataKey": "",//操作対象の一意の KEY(dataKey または alarmType) "dataValue": "",//書き込み内容またはアラーム内容 "changeMod": true,//変化時のみ書き込むか "availableDate": "",//時間帯別データの有効開始時刻 "expiredDate": ""//時間帯別データの有効終了時刻 }]実行結果を解析して内容の正確性を検証し、実行前のラッパーオブジェクトを返します。
{ "writeCommBridgeContent": [ { "dataKey": "数据10", "dataValue": "200" } ], "writeAggregationDataConfigs": [ { "aggregationDataConfigId": 100004, "dataKey": "温度", "dataName": "温度", "collectionCycle": -1, "expression": "return 15", "status": "Valid", "empty": false, "hasGroup": false, "useLatestValue": true, "note": "", "createdBy": 100001, "createdTime": "2025-03-18T15:04:39.503+08:00", "updatedBy": 100001, "updatedTime": "2025-03-28T10:21:15.578+08:00" } ], "writeAggregationDataValues": [ { "aggregationDataConfigId": 100004, "dataValue": "20", "collectionTime": "2025-04-23T15:30:49.913+08:00" } ], "writeCustomizationDataValues": [ { "customizationDataConfigId": 100003, "dataValue": "15", "availableDate": "2023-01-15T07:00:00.000+08:00", "expiredDate": "2023-01-15T10:00:00.000+08:00", "createdBy": 100000, "createdTime": "2025-04-23T15:30:49.912+08:00" } ], "writeShareDataValues": [ { "shareDataConfigId": 3, "deviceCode": "DeviceB", "dataKey": "数据3", "collectionCycle": 3000, "dataValue": "888", "collectionTime": "2025-04-23T15:30:49.914+08:00" } ], "alarmRecords": [ { "alarmType": "二级告警", "alarmContent": "二级告警", "alarmTime": "2025-04-23T15:30:49.912+08:00", "mark": "None" }, { "alarmType": "一级告警", "alarmContent": "{\"iotCode\":66.60000000,\"faultCode\":66.60000000,\"faultBack\":66.60000000,\"faultLevel\":66.60000000,\"timestamp\":1745393449910,\"faultName\":66.60000000}", "alarmTime": "2025-04-23T15:30:49.912+08:00", "mark": "None", "mqttConnectionConfigId": 1, "topic": "upload", "qos": 1 } ]}MQTT アラーム送信結果
Section titled “MQTT アラーム送信結果”
次のステップ
Section titled “次のステップ”- 条件・アクション種別と動的デバイス検出例を含む全体概念:トリガープラン
- Lua 組み込み関数とモジュールの完全リファレンス:Lua エンジンの規則