Command
Das Command-Objekt repräsentiert einen Befehl, der an ein Gerät oder einen Endpunkt gesendet werden soll. Dieses Objekt wird normalerweise als Parameter in der buildDownlink-Methode als Teil eines LoRaWAN- oder MQTT-Datenkonvertierungs-Skripts empfangen.
Eigenschaften
commandId (int) Die commandId-Eigenschaft gibt eine interne Nummer an, die den Befehl eindeutig identifiziert. Wenn das Gerät in der Lage ist, auf den Befehl zu antworten, muss die Antwort dieselbe commandId enthalten.
Beispiele
Das Folgende ist ein Beispiel basierend auf der Dokumentation der buildDownlink-Methode im Abschnitt LoRaWAN- oder MQTT-Datenkonvertierung.
function buildDownlink(device, endpoint, command, payload)
{
payload.port = 25; // This device receives commands on LoRaWAN port 25
payload.buildResult = downlinkBuildResult.ok;
switch (command.type) {
case commandType.onOff:
switch (command.onOff.type) {
case onOffCommandType.turnOn:
payload.setAsBytes([30]); // Command ID 30 is "turn on"
break;
case onOffCommandType.turnOff:
payload.setAsBytes([31]); // Command ID 31 is "turn off"
break;
case onOffCommandType.toggle:
payload.setAsBytes([32]); // Command ID 32 is "toggle"
break;
default:
payload.buildResult = downlinkBuildResult.unsupported;
break;
}
break;
default:
payload.buildResult = downlinkBuildResult.unsupported;
break;
}
}type (int, enum)
Die type-Eigenschaft gibt den Befehlstyp an. Die möglichen Werte sind wie folgt:
- commandType.onOff (1): gibt an, dass der Befehl vom Typ Ein/Aus ist, d. h. zum Einschalten, Ausschalten oder Umschalten eines Endpunkts.
- commandType.dimmer (2): gibt an, dass der Befehl zum Ändern der Stufe eines Dimmers dient.
- commandType.closure (3): gibt an, dass der Befehl zur Steuerung eines Verschlusses dient, z. B. eines Vorhangs oder einer Jalousie.
- commandType.thermostat (4): gibt an, dass der Befehl zur Steuerung eines Thermostats dient.
- commandType.management (5): gibt an, dass der Befehl zur Verwaltung des Geräts dient (Neustart, Firmware-Upgrade usw.).
- commandType.custom (6): gibt an, dass es sich um einen benutzerdefinierten Befehl handelt.
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
onOff (object)
Die onOff-Eigenschaft ist ein Objekt, das die Befehlsparameter enthält, wenn es vom Typ commandType.onOff ist. Das Objekt hat folgende Eigenschaften:
- type (int enum): gibt den Ein/Aus-Befehlstyp an, unter den folgenden:
- onOffCommandType.turnOn (0): gibt an, dass der Befehl zum Einschalten des Endpunkts dient.
- onOffCommandType.turnOff (1): gibt an, dass der Befehl zum Ausschalten des Endpunkts dient.
- onOffCommandType.toggle (2): gibt an, dass der Befehl zum Umschalten des Endpunkts dient.
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
dimmer (object)
Die dimmer-Eigenschaft ist ein Objekt, das die Befehlsparameter enthält, wenn es vom Typ commandType.dimmer ist. Das Objekt hat folgende Eigenschaften:
- level (double): gibt die Dimmstufe als Prozentsatz von null bis 100 % an.
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
thermostat (object)
Die thermostat-Eigenschaft ist ein Objekt, das die Befehlsparameter enthält, wenn es vom Typ commandType.thermostat ist. Das Objekt hat folgende Eigenschaften:
- type (int enum): gibt den Typ des an den Thermostat gesendeten Befehls an, unter den folgenden:
- thermostatCommandType.setMode (0): der Befehl dient zum Ändern des Thermostat-Modus.
- thermostatCommandType.setFanMode (1): der Befehl dient zum Ändern des Lüfter-Modus des Thermostats.
- thermostatCommandType.setSetpoint (2): der Befehl dient zum Ändern des Sollwerts.
- thermostatCommandType.setAll (3): der Befehl dient zum gleichzeitigen Ändern aller Parameter.
- mode (int enum): gibt den Modus an, in den der Thermostat wechseln soll, wenn der Typ thermostatCommandType.setMode oder thermostatCommandType.setAll ist. Die möglichen Werte sind wie folgt:
- thermostatMode.off (1): der Thermostat soll ausgeschaltet werden.
- thermostatMode.auto (2): der Thermostat soll in den Auto-Modus wechseln.
- thermostatMode.heat (3): der Thermostat soll in den Heiz-Modus wechseln.
- thermostatMode.cool (4): der Thermostat soll in den Kühl-Modus wechseln.
- thermostatMode.dry (5): der Thermostat soll in den Entfeuchtungs-Modus (Dry) wechseln.
- thermostatMode.fan (6): der Thermostat soll in den Lüfter-Modus wechseln.
- fanMode (int enum): gibt den Lüfter-Modus an, in den der Thermostat wechseln soll, wenn der Typ thermostatCommandType.setFanMode oder thermostatCommandType.setAll ist. Die möglichen Werte sind wie folgt:
- thermostatFanMode.auto (1): der Lüfter soll in den Auto-Modus wechseln.
- thermostatFanMode.low (2): der Lüfter soll in den Niedrig-Modus wechseln.
- thermostatFanMode.mid (3): der Lüfter soll in den Mittel-Modus wechseln.
- thermostatFamMode.high (4): der Lüfter soll in den Hoch-Modus wechseln.
- setpoint (double): gibt den Sollwert in Grad Celsius an, wenn der Typ thermostatCommandType.setSetpoint oder thermostatCommandType.setAll ist.
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
closure (object)
Die closure-Eigenschaft ist ein Objekt, das die Befehlsparameter enthält, wenn es vom Typ commandType.closure ist. Das Objekt hat folgende Eigenschaften:
- type (int enum): gibt den Typ des an den Verschluss gesendeten Befehls an, unter den folgenden:
- closureCommandType.open (0): der Befehl dient zum Öffnen des Verschlusses.
- closureCommandType.close (1): der Befehl dient zum Schließen des Verschlusses.
- closureCommandType.position (2): der Befehl dient zum Ändern der Position des Verschlusses.
- closureCommandType.stop (3): der Befehl dient zum Stoppen der Verschluss-Bewegung.
- closureCommandType.openStop (4): der Befehl dient zum Öffnen des Verschlusses oder zum Stoppen, falls er sich bewegt.
- closureCommandType.closeStop (5): der Befehl dient zum Schließen des Verschlusses oder zum Stoppen, falls er sich bewegt.
- position (int): gibt die Position an, zu der sich der Verschluss bewegen soll, wenn der Typ closureCommandType.position ist, als Prozentsatz zwischen 0 % (geschlossen) und 100 % (offen).
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
management (object)
Die management-Eigenschaft ist ein Objekt, das die Befehlsparameter enthält, wenn es vom Typ commandType.management ist. Das Objekt hat folgende Eigenschaften:
- type (int enum): gibt den Typ des an das Gerät gesendeten Befehls an, unter den folgenden:
- managementCommandType.identify (0): fordert das Gerät auf, sich zu identifizieren. Dies wird bei einigen Geräten verwendet, um das Gerät eine visuelle oder akustische Anzeige aktivieren zu lassen.
- managementCommandType.reboot (1): fordert das Gerät auf, neu zu starten.
- managementCommandType.powerOff (2): fordert das Gerät auf, sich auszuschalten.
- managementCommandType.poll (3): fordert das Gerät auf, so schnell wie möglich aktualisierte Informationen zu senden.
- managementCommandType.updateFirmware (4): fordert das Gerät auf, seine Firmware zu aktualisieren.
- managementCommandType.setValue (5): fordert das Gerät auf, einen Wert zu ändern.
- updateFirmware (object): gibt die Firmware-Update-Parameter an, wenn der Wert des type-Felds managementCommandType.updateFirmware ist. Die Eigenschaften dieses Objekts sind wie folgt:
- downloadUrl (string): gibt die URL an, von der das Gerät das Firmware-Update herunterladen soll.
- setValue (object): das setValue-Objekt enthält die notwendigen Informationen zum Ändern des Werts, wenn der Wert des type-Felds managementCommandType.setValue ist. Die Eigenschaften dieses Objekts sind wie folgt:
- newValue (double): gibt den neuen zuzuweisenden Wert an.
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
custom (object)
Die custom-Eigenschaft ist ein Objekt, das die Befehlsparameter enthält, wenn es vom Typ commandType.custom ist. Das Objekt hat folgende Eigenschaften:
- type (int): beliebiger Wert, der den benutzerdefinierten Befehlstyp angibt.
- data (string): beliebiger Wert, der an das Gerät gesendet werden soll.
Beispiele
Ein vollständiges Beispiel wird am Anfang dieses Abschnitts präsentiert.
RSSI-Status
Das RSSI-Status-Objekt repräsentiert den Signalpegel einer drahtlosen Verbindung eines Geräts. Dieses Objekt wird normalerweise verwendet, um den Signalpegel über die updateDeviceRssi-Methode zu aktualisieren...
Mehrsprachiges Literal
Das mehrsprachige Literal-Objekt ermöglicht die Erstellung von Nachrichten in mehreren Sprachen, insbesondere für Fehler- oder Informationsmeldungen. Eigenschaften en (string)...