Endpunkt-Konfiguration
Das Endpunkt-Konfigurationsobjekt repräsentiert die initiale Konfiguration eines Endpunkts, typischerweise in Gerätemodell-Konfiguration-Skripten.
Objekte dieses Typs werden über die add()-Methode des Endpunkt-Konfigurationssammlung-Objekts erstellt.
Eigenschaften
address (string) Die Eigenschaft address repräsentiert die Adresse des Endpunkts als Text.
Beispiele
Dieses Beispiel zeigt die Adresse eines Endpunkts über die Log-Konsole.
env.log('Endoint address: ', endpoint.address);defaultDescription (string oder mehrsprachiges Literal) Die Eigenschaft defaultDescription repräsentiert die Beschreibung, die beim Erstellen des Endpunkts verwendet wird. Sie kann ein String oder ein mehrsprachiges Literal-Objekt sein.
Beispiele
Dieses Beispiel zeigt die Beschreibung eines Endpunkts über die Log-Konsole.
env.log('Endoint description: ', endpoint.defaultDescription);endpointType (int enum) Die Eigenschaft endpointType gibt den Endpunkttyp an. Die möglichen Werte für diese Eigenschaft sind dieselben wie die der endpointType-Eigenschaft des endpoint-Objekts.
Beispiele
Dieses Beispiel zeigt den Typ eines Endpunkts über die Log-Konsole.
env.log('Endoint type: ', endpoint.endpointType);endpointSubType (int enum) Die Eigenschaft endpointSubType gibt den Endpunkt-Subtyp an. Die möglichen Werte für diese Eigenschaft sind dieselben wie die der endpointSubType-Eigenschaft des endpoint-Objekts.
Beispiele
Dieses Beispiel zeigt den Subtyp eines Endpunkts über die Log-Konsole.
env.log('Endoint subtype: ', endpoint.endpointSubType);variableTypeId (int enum) Die Eigenschaft variableTypeId gibt den benutzerdefinierten Variablentyp an, der dem Endpunkt zugeordnet ist. Diese Eigenschaft gilt nur für Endpunkte vom Typ endpointType.genericSensor und endpointType.genericFlowSensor.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ Durchflusssensor und weist ihm die Variable mit der ID 1071 zu.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.variableTypeId = 1071;accessType (int enum) Die Eigenschaft accessType gibt den Zugriffstyp an, der auf den Endpunkt angewendet wird. Standardmäßig ist der Zugriff schreibgeschützt. Die möglichen Werte für diese Eigenschaft sind dieselben wie die der accessType-Eigenschaft des endpoint-Objekts.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ generischer Sensor und weist ihm Lese-Schreib-Zugriff zu.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.accessType = endpointAccessType.readWrite;operationSecurityLevel (int enum) Die Eigenschaft operationSecurityLevel gibt die Sicherheitsstufe an, die mit der Endpunkt-Operation verknüpft ist. Standardmäßig ist die Sicherheitsstufe einfach. Die möglichen Werte für diese Eigenschaft sind dieselben wie die der operationSecurityLevel-Eigenschaft des endpoint-Objekts.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ generischer Sensor und weist ihm eine mittlere Sicherheitsstufe zu.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.operationSecurityLevel = endpointOperationSecurityLevel.medium;operationWarningMessage (string oder mehrsprachiges Literal) Die Eigenschaft operationWarningMessage repräsentiert die Warnmeldung, die angezeigt wird, wenn versucht wird, das Gerät manuell zu bedienen, falls die Sicherheitsstufe in der Eigenschaft operationSecurityLevel mittel oder hoch ist. Sie kann ein String oder ein mehrsprachiges Literal-Objekt sein.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ generischer Sensor und weist ihm eine mehrsprachige Warnmeldung zu.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.operationWarningMessage = {en: "This is a critical operation. Continue?", es: "Esta es una operación crítica. ¿Continuar?"};range (endpoint range) Die Eigenschaft range ermöglicht die Angabe des Bereichs zulässiger Werte für einen Endpunkt. Sie ist nur auf skalare Endpunkttypen anwendbar. Der Bereich wird als Objekt vom Typ endpoint range ausgedrückt. Der Standardwert für diese Eigenschaft ist null, was bedeutet, dass jeder Wert akzeptabel ist.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ generischer Sensor und weist ihm einen Wertebereich von -100 bis +100 zu.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.range = {lowestValue: -100, highestValue: 100};summationAutoResetThreshold (int oder null)
Die Eigenschaft summationAutoResetThreshold steuert das Endpunkt-Verhalten, wenn ein kumulativer Wert empfangen wird, der niedriger ist als der zuletzt empfangene. Diese Eigenschaft gilt nur für Endpunkte vom Typ endpointType.flowSensor, endpointType.genericFlowSensor, endpointType.peopleFlowSensor und endpointType.energyMeter.
Wenn ein kumulativer Wert empfangen wird, der niedriger ist als der vorherige, muss die Plattform entscheiden, wie der neue Wert zu interpretieren ist. Typischerweise können einige Geräte einen niedrigeren Wert senden, wenn tatsächlich ein "negativer" Verbrauch stattgefunden hat, zum Beispiel:
- Wenn ein Durchflusssensor in der Lage ist, den Durchfluss in entgegengesetzter Richtung zur normalen zu messen.
- Wenn ein Energiezähler in der Lage ist, erzeugte Energie zu messen, anstatt nur verbrauchte Energie zu messen.
Viele andere Geräte melden jedoch einen niedrigeren Wert als den letzten, wenn sie neu gestartet oder ausgeschaltet werden, da sie den kumulativen Wert nur im flüchtigen Speicher halten. Beim Neustart oder Ausschalten verlieren sie den akkumulierten Zählerstand und setzen ihn auf null zurück.
Die Eigenschaft summationAutoResetThreshold kann einen der folgenden Werte annehmen:
- null: gibt an, dass kein Schwellenwert für den kumulativen Wert verwendet wird. Wenn ein niedrigerer Wert als der letzte empfangen wird, wird er als "negativer" Verbrauch betrachtet.
- 0 (null): gibt an, dass bei Empfang eines niedrigeren Werts als dem letzten davon ausgegangen werden soll, dass das Gerät den kumulativen Wert zurückgesetzt hat, weil es den vorherigen Wert verloren hat. Der neue Wert wird dann als positiver Verbrauchswert betrachtet.
- Jeder Wert größer als null: Beim Empfang eines kumulativen Werts, der niedriger ist als der zuletzt empfangene, betrachtet die Plattform den kumulativen Wert nur dann als zurückgesetzt, wenn die Differenz zwischen dem vorherigen Wert und dem neuen Wert größer oder gleich dem angegebenen Schwellenwert ist. Wenn die Differenz kleiner als dieser Schwellenwert ist, wird er als negativer Verbrauch betrachtet.
Es wird empfohlen, dass für alle Geräte, die nicht in der Lage sind, negative Durchflüsse zu messen, der Wert dieser Eigenschaft auf null gesetzt wird.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ generischer Sensor und weist der Eigenschaft summationAutoResetThreshold den Wert null zu.
var e = endpoints.addEndpoint("1", "My flow sensor", endpointType.flowSensor);
e.summationAutoResetThreshold = 0;tags (array) Die Eigenschaft tags gibt die Menge der auf den Endpunkt angewendeten Tags an. Diese Eigenschaft ist ein Array von Strings, von denen jeder ein Tag angibt.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ generischer Sensor und weist drei Tags zu, die den Texten "sensor", "generic" und "customer1" entsprechen.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.tags = ["sensor", "generic", "customer1"];requiresElectricalCircuit (boolean)
Die Eigenschaft requiresElectricalCircuit gibt an, ob der Endpunkt automatisch einen zugeordneten Stromkreis erstellen soll, wenn das Gerät in der Plattform registriert wird.
Diese Eigenschaft gilt nur für Endpunkte vom Typ \*\*endpointType.voltageSensor\*\*. Für alle anderen Endpunkttypen wird die Eigenschaft ignoriert und ihr Verhalten bleibt unverändert.
Der Standardwert dieser Eigenschaft ist false, was bedeutet, dass kein Stromkreis erstellt wird, es sei denn, dies wird explizit angegeben.
Beispiele
Dieses Beispiel erstellt einen Endpunkt vom Typ Spannungssensor und konfiguriert die Eigenschaft so, dass automatisch ein Stromkreis in der Plattform erstellt wird:
var voltageSensor = endpoints.addEndpoint("2", "Battery", endpointType.voltageSensor);
voltageSensor.requiresElectricalCircuit = true;Methoden
addAlert() Die Methode addAlert() ermöglicht das Erstellen einer neuen Benachrichtigung, die mit dem Endpunkt verknüpft ist. Die Methode gibt ein Alarm-Objekt zurück, das mit den entsprechenden Parametern konfiguriert werden muss.
Ergebnis
Das Ergebnis dieser Methode ist ein Alarm-Objekt, das über die folgenden Eigenschaften konfiguriert werden muss:
- variableTypeId (int): gibt den Variablentyp an, der mit dem Alarm verknüpft ist. Er muss einem vom Endpunkt unterstützten Variablentyp entsprechen. Es kann die Kennung einer beliebigen benutzerdefinierten Variable oder einer der vordefinierten Variablentypen verwendet werden, sofern sie vom Endpunkt unterstützt werden. Die Werte für vordefinierte Variablentypen sind wie folgt:
- variableType.temperature (1)
- variableType.humidity (2)
- variableType.lightLevel (3)
- variableType.setPoint (4)
- variableType.volume (5)
- variableType.activeEnergy (6)
- variableType.runTime (7)
- variableType.discreteSensorState (8)
- variableType.dimmerization (9)
- variableType.weight (10)
- variableType.flow (11)
- variableType.voltage (12)
- variableType.current (13)
- variableType.activePower (14)
- variableType.reactivePower (15)
- variableType.apparentPower (16)
- variableType.cosPhi (17)
- variableType.pressure (18)
- variableType.frequency (19)
- variableType.ppmConcentration (20)
- variableType.mvConcentration (21)
- variableType.aqi (22)
- variableType.peopleFlow (23)
- variableType.peopleCount (24)
- variableType.reactiveEnergy (25)
- variableType.apparentEnergy (26)
- variableType.location (27)
- conditionType (enum): gibt den Bedingungstyp an, der zum Auslösen des Alarms verwendet wird. Es kann einer der folgenden Werte sein:
- conditionType.equal (1): gibt an, dass der Wert dem angegebenen Wert entsprechen muss.
- conditionType.notEqual (2): gibt an, dass der Wert vom angegebenen Wert abweichen muss.
- conditionType.greater (3): gibt an, dass der Wert größer als der angegebene Wert sein muss.
- conditionType.greaterOrEqual (4): gibt an, dass der Wert größer oder gleich dem angegebenen Wert sein muss.
- conditionType.lower (5): gibt an, dass der Wert kleiner als der angegebene Wert sein muss.
- conditionType.lowerOrEqual (6): gibt an, dass der Wert kleiner oder gleich dem angegebenen Wert sein muss.
- threshold (double): gibt den Wert an, der zum Auslösen des Alarms verwendet wird, entsprechend dem Bedingungstyp.
- normalConditionType (enum): gibt den Bedingungstyp an, der zum Schließen des Alarms verwendet wird. Die Werte sind dieselben wie die des conditionType-Felds.
- normalThreshold (double): gibt den Wert an, der zum Schließen des Alarms verwendet wird, entsprechend dem normalen Bedingungstyp.
- minimumDurationSeconds (int): gibt an, dass die Auslösebedingung für eine bestimmte Zeit, angegeben in Sekunden, aufrechterhalten werden muss, damit der Alarm ausgelöst wird. Der Standardwert ist null, was bedeutet, dass der Alarm sofort ausgelöst wird.
- severity (enum): gibt den Schweregrad des Alarms an. Es kann einer der folgenden Werte sein:
- alarmSeverity.Information (0): informativer Alarm.
- alarmSeverity.low (1): Alarm mit niedrigem Schweregrad.
- alarmSeverity.medium (2): Alarm mit mittlerem Schweregrad.
- alarmSeverity.high (3): Alarm mit hohem Schweregrad.
- geoZoneId (int): Geozone-Kennung, falls sich der Alarm auf das Betreten oder Verlassen einer Geozone bezieht.
- notificationEmails (string[]): Array von Strings, die die E-Mail-Adressen von Personen angeben, die benachrichtigt werden sollen, wenn der Alarm ausgelöst oder geschlossen wird. Kontakte können in der Form "@ab:id" angegeben werden, wobei "id" die Kontakt-Kennung im Adressbuch angibt.
- notificationSmsNumbers (string[]): Array von Strings, die die Telefonnummern von Personen angeben, die per SMS benachrichtigt werden sollen, wenn der Alarm ausgelöst oder geschlossen wird. Kontakte können in der Form "@ab:id" angegeben werden, wobei "id" die Kontakt-Kennung im Adressbuch angibt.
- notificationVoiceNumbers (string[]): Array von Strings, die die Telefonnummern von Personen angeben, die per Sprachanruf benachrichtigt werden sollen, wenn der Alarm ausgelöst oder geschlossen wird. Kontakte können in der Form "@ab:id" angegeben werden, wobei "id" die Kontakt-Kennung im Adressbuch angibt.
- emailTemplates (object): optionales Objekt, das die Vorlage angibt, die für E-Mails verwendet wird, sowohl beim Öffnen als auch beim Schließen des Alarms.
Ermöglicht die Verwendung von Variablen und hat die folgenden Eigenschaften:
- openSubjectTemplate (string): Vorlage für den Betreff beim Öffnen des Alarms. Wenn leer gelassen oder auf null gesetzt, wird der Standardbetreff verwendet.
- openTemplate (string): Vorlage für das Öffnen des Alarms. Wenn leer gelassen oder auf null gesetzt, wird die Standardvorlage verwendet.
- closeSubjectTemplate (string): Vorlage für den Betreff beim Schließen des Alarms. Wenn leer gelassen oder auf null gesetzt, wird der Standardbetreff verwendet.
- closeTemplate (string): Vorlage für das Schließen des Alarms. Wenn leer gelassen oder auf null gesetzt, wird die Standardvorlage verwendet.
- smsTemplates (object): optionales Objekt, das die Vorlage angibt, die für Textnachrichten verwendet wird, sowohl beim Öffnen als auch beim Schließen des Alarms. Es hat dieselben Eigenschaften wie das emailTemplates-Objekt. Die Eigenschaften openSubjectTemplate und closeSubjectTemplate werden ignoriert.
- voiceTemplates (object): optionales Objekt, das die Vorlage angibt, die für Sprachanrufe verwendet wird, sowohl beim Öffnen als auch beim Schließen des Alarms. Es hat dieselben Eigenschaften wie das emailTemplates-Objekt. Die Eigenschaften openSubjectTemplate und closeSubjectTemplate werden ignoriert.
- tags (string[]): Array von Strings, das optional Tags für den Alarm angibt.
Beispiel 1
Dieses Beispiel zeigt die Erstellung eines Alarms für einen Endpunkt.
var alert = myEndpoint.addAlert();
alert.variableTypeId = variableType.temperature;
alert.conditionType = conditionType.greater;
alert.threshold = 25;
alert.normalConditionType = conditionType.lowerOrEqual;
alert.normalThreshold = 20;
alert.severity = alarmSeverity.medium;
alert.notificationEmails = ['someone@somedomain.com', 'someone_else@somedomain.com'];
alert.tags = ['alert', 'test'];
alert.emailTemplates = [ openTemplate: "correo@email.com", closeTemplate: "correo2@email.com" ];Endpunkt-Konfigurationssammlung
Das Endpunkt-Konfigurationssammlungsobjekt repräsentiert eine Sammlung von Endpunkten, für die eine initiale Konfiguration festgelegt werden soll, typischerweise in Gerätemodelkonfigurationsskripten.
Geräte-UI-Regeln
Das Geräte-UI-Regeln-Objekt repräsentiert die Benutzeroberflächenregeln, die auf ein Gerät angewendet werden, typischerweise verwendet in Gerätemodell-Konfigurationsskripten.