- Jelina-Überblick
- EMS Builder
- Referenzhandbuch
Triggerschemata
Die Skriptsprache ist Lua. Lesen Sie zunächst Triggerschemata zu den Grundkonzepten und den Kategorien von Trigger-Bedingungen und -Aktionen. Diese Seite beschreibt Schreibparameter, Rückgabestruktur und vollständige Beispiele für Aktionsskripte des Typs EXPRESSION.
Überblick
Abschnitt betitelt „Überblick“- Die Trigger-Logik entspricht der anderer Triggerschematypen. Der Unterschied liegt im Skriptinhalt der Trigger-Aktion.
- Nach der Skriptausführung wertet das Backend von Edge-EMS Builder das zurückgegebene Ergebnis aus und schreibt entsprechend dessen Inhalt in die angegebenen Datenpunkte.
Hinweis: Erforderlich sind Programmiergrundkenntnisse und Vertrautheit mit dem Ablauf der Strategieausführung. Die Skriptsyntax beschreibt die Lua-Engine-Referenz.
Verwendung
Abschnitt betitelt „Verwendung“Schreibparameter
Abschnitt betitelt „Schreibparameter“| Parametername | Parameterwert | Pflichtfeld | Parametertyp | Beschreibung |
|---|---|---|---|---|
| dataType | Customization | Ja | String | Zu bearbeitender Datentyp: Customization/Collection/Aggregation/Alarm/Share |
| deviceCode | DeviceA | Nein | String | Code des untergeordneten Geräts |
| dataKey | 功率 | Ja | String | Eindeutiger dataKey oder Alarmtyp |
| dataValue | 15 | Ja | String | Datenwert oder Alarminhalt |
| changeMod | true | Nein | String | Schreiben nur bei Änderungen aktivieren |
| availableDate | 2023-01-15T07:00:00+08:00 | Nein | String | Beginn der Gültigkeit (Customization) |
| expiredDate | 2023-01-15T10:00:00+08:00 | Nein | String | Ende der Gültigkeit (Customization) |
| mqttConnectionConfigId | 100101 | Nein | String | ID der MQTT-Verbindungskonfiguration (Alarm) |
| topic | upload | Nein | String | Topic für den Alarm-Upload (Alarm) |
| qos | 1 | Nein | String | QoS (Alarm) |
Zeitplandaten (Customization) unterstützen auch den Zeitplantyp Tägliche Wiederholung (DailyRepeat). Verwenden Sie
availableTimeundexpiredTimeim FormatHH:mm:ssstattavailableDateundexpiredDate. Der Zeitraum darf Mitternacht nicht überschreiten und wird täglich wiederholt. Als Kurzformen stehenbuildCustomizationWriteMap(dataKey, dataValue, availableDate, expiredDate)ausschließlich für DailyChange undbuildDailyRepeatWriteMap(dataKey, dataValue, availableTime, expiredTime)ausschließlich für DailyRepeat zur Verfügung. Siehe Lua-Engine-Referenz.Ist für einen im Skript referenzierten Datenpunkt kein Wert verfügbar, wird der Sentinel-String
__Null__eingesetzt. Nehmen Sie weder einen leeren String nochnilan. Prüfen Sie ausdrücklich${dataKey} == "__Null__".
Beispiel
Abschnitt betitelt „Beispiel“local resultList = {}
-- Benutzerdefinierter Alarminhaltlocal errorMap = {}errorMap.timestamp = OffsetDateTime.now():unixMilli()errorMap.iotCode = ${数据9}errorMap.faultCode = ${数据9}errorMap.faultLevel = ${数据9}errorMap.faultName = ${数据9}errorMap.faultBack = ${数据9}-- Alarminhalt in JSON umwandelnlocal 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 resultListErwartetes Ausführungsergebnis
Abschnitt betitelt „Erwartetes Ausführungsergebnis“Erwartet wird ein Array mit mehreren Tabellen. Edge-EMS Builder wertet dieses Array aus, prüft die Gültigkeit der enthaltenen Objekte und gibt anschließend die zusammengestellten Schreibobjekte zurück:
[ { "dataType": "",//Zielobjekttyp "deviceCode": "",//Eindeutiger Code des untergeordneten Zielgeräts für den Schreibvorgang "dataKey": "",//Eindeutiger Schlüssel des Zielobjekts (dataKey oder alarmType) "dataValue": "",//Zu schreibender Wert oder Alarminhalt "changeMod": true,//Nur bei Änderungen schreiben "availableDate": "",//Beginn der Gültigkeit der Zeitplandaten "expiredDate": ""//Ende der Gültigkeit der Zeitplandaten }]Auswertungsergebnis
Abschnitt betitelt „Auswertungsergebnis“Das Ausführungsergebnis wird ausgewertet und sein Inhalt auf Korrektheit geprüft. Zurückgegeben wird ein für die Ausführung vorbereitetes Objekt:
{ "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 } ]}Ergebnis des MQTT-Alarm-Uploads
Abschnitt betitelt „Ergebnis des MQTT-Alarm-Uploads“
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Grundkonzepte der Triggerschemata (Bedingungs- und Aktionstypen sowie Beispiel zur dynamischen Geräteerkennung): Triggerschemata
- Vollständige Referenz integrierter Lua-Funktionen und -Module: Lua-Engine-Referenz