Daten-Payload
Das Daten-Payload-Objekt repräsentiert einen von einem Gerät empfangenen Payload, beispielsweise von einem Gerät mit MQTT-, HTTP- oder LoRaWAN-Konnektivität. Das Objekt ermöglicht den Zugriff auf empfangene Daten in binärer Form, als Text, als JSON-Objekt und auf andere Weise. Dieses Objekt wird üblicherweise als Parameter in bestimmten Skripten empfangen, wie z. B. MQTT-, HTTP- oder LoRaWAN-Datenkonvertierung-Skripten.
Eigenschaften
port (int, nur verfügbar für LoRaWAN-Pakete) Die Eigenschaft port gibt den LoRaWAN-Port an, an den das Gerät den Payload gesendet hat. Diese Eigenschaft hat nur einen Wert für Payloads, die über ein LoRaWAN-Netzwerk empfangen wurden. Für andere Kommunikationsmethoden ist der Wert immer null.
Beispiele
Dieses Beispiel zeigt den Payload-Port in der Log-Konsole.
env.log('Payload port: ', payload.port);topic (string, nur verfügbar für MQTT-Pakete) Die Eigenschaft topic gibt das MQTT-Topic an, an das das Gerät den Payload gesendet hat. Diese Eigenschaft hat nur einen Wert für Payloads, die über MQTT empfangen wurden. Für andere Kommunikationsmethoden ist der Wert immer eine leere Zeichenkette.
Beispiele
Dieses Beispiel zeigt das Payload-Topic in der Log-Konsole.
env.log('Payload topic: ', payload.topic);buildResult (enum, nur für Downlinks)
Die Eigenschaft buildResult ermöglicht die Angabe des Ergebnisses beim Erstellen eines Payloads für Downlinks. Dies wird typischerweise in der Funktion buildDownlink() des Datenverarbeitungsskripts für LoRaWAN und MQTT verwendet. Die möglichen Werte für diese Eigenschaft sind wie folgt:
- downlinkBuildResult.ok (0): .
- downlinkBuildResult.error (1): .
- downlinkBuildResult.unsupported (2): .
Beispiele
Dieses Beispiel zeigt einen Code-Ausschnitt, der eine Fehlermeldung während der Erstellung eines Downlink-Payloads angibt.
payload.buildResult = downlinkBuildResult.error;
payload.errorMessage = { en: "Invalid parameter", es: "Parámetro no válido" };errorMessage (string oder mehrsprachiges Literal, nur für Downlinks) Die Eigenschaft errorMessage ermöglicht die Angabe einer Fehlermeldung während der Erstellung eines Payloads für Downlinks. Dies wird typischerweise in der Funktion buildDownlink() des Datenverarbeitungsskripts für LoRaWAN und MQTT verwendet, wenn der Wert downlinkBuildResult.error in der Eigenschaft buildResult verwendet wird. Der dieser Eigenschaft zugewiesene Wert kann eine Zeichenkette oder ein mehrsprachiges Literal-Objekt sein.
Beispiele
Dieses Beispiel zeigt einen Code-Ausschnitt, der eine Fehlermeldung während der Erstellung eines Downlink-Payloads angibt.
payload.buildResult = downlinkBuildResult.error;
payload.errorMessage = { en: "Invalid parameter", es: "Parámetro no válido" };requiresResponse (boolean, nur für Downlinks)
Die Eigenschaft requiresResponse ermöglicht die Angabe, ob die zu erstellende Nachricht eine Antwort vom Gerät erfordert oder ob der Befehl als erfolgreich abgeschlossen betrachtet werden soll, sobald er gesendet wurde.
- Wenn die Eigenschaft den Wert false (default value), the command will be considered sent as soon as the payload is sent to the MQTT broker (for MQTT devices), or the payload is queued at the LoRaWAN gateway (for LoRaWAN devices).
- hat. Wenn die Eigenschaft den Wert true hat, bleibt der Befehl offen, bis das Gerät selbst eine Antwort auf den Befehl sendet.
Der Standardwert dieser Eigenschaft ist false.
Beispiele
Dieses Beispiel zeigt einen Code-Ausschnitt, der angibt, dass der Payload keine Antwort vom Gerät erfordert.
payload.requiresResponse = false;latitude (double, nur für Uplinks) Die Eigenschaft latitude ermöglicht die Ermittlung des Breitengrads des Geräts, das Daten gesendet hat. Diese Eigenschaft ist nur verfügbar, wenn der Informationsanbieter in der Lage war, den Standort des Geräts durch Triangulation oder eine gleichwertige Methode zu berechnen.
Beispiele
Dieses Beispiel zeigt einen Code-Ausschnitt, der den Breitengrad des Geräts anzeigt.
env.log("Latitude: ", payload.latitude);longitude (double, nur für Uplinks) Die Eigenschaft longitude ermöglicht die Ermittlung des Längengrads des Geräts, das Daten gesendet hat. Diese Eigenschaft ist nur verfügbar, wenn der Informationsanbieter in der Lage war, den Standort des Geräts durch Triangulation oder eine gleichwertige Methode zu berechnen.
Beispiele
Dieses Beispiel zeigt einen Code-Ausschnitt, der den Längengrad des Geräts anzeigt.
env.log("Longitude: ", payload.longitude);altitude (double, nur für Uplinks) Die Eigenschaft altitude ermöglicht die Ermittlung der Höhe des Geräts, das Daten gesendet hat. Diese Eigenschaft ist nur verfügbar, wenn der Informationsanbieter in der Lage war, den Standort des Geräts durch Triangulation oder eine gleichwertige Methode zu berechnen.
Beispiele
Dieses Beispiel zeigt einen Code-Ausschnitt, der die Höhe des Geräts anzeigt.
env.log("Altitude: ", payload.altitude);Methoden
asBytes() Die Methode asBytes() ermöglicht das Abrufen des Payload-Inhalts als Byte-Array. Dies wird hauptsächlich verwendet, wenn der Payload in binärer Form verarbeitet werden muss.
Beispiel 1
Dieses Beispiel zeigt den Payload-Inhalt als Bytes über die Log-Konsole.
payload.asBytes().forEach(element => env.log(element));asString() Die Methode asString() ermöglicht das Abrufen des Payload-Inhalts als Zeichenkette, wobei der binäre Inhalt in eine Zeichenkette konvertiert und UTF-8-Kodierung angenommen wird. Dies wird hauptsächlich verwendet, wenn der Payload als Text verarbeitet werden muss.
Beispiel 1
Dieses Beispiel zeigt den Payload-Inhalt als Zeichenkette über die Log-Konsole.
env.log(payload.asString());asJsonObject() Die Methode asJsonObject() ermöglicht das Abrufen des Payload-Inhalts als Objekt, wobei angenommen wird, dass der Payload im JSON-Format kodierter Text ist. Dies wird hauptsächlich verwendet, wenn der Payload als JSON-Text verarbeitet werden muss.
Beispiel 1
Dieses Beispiel zeigt den Payload-Inhalt als JSON-Objekt über die Log-Konsole.
env.log(payload.asJsonObject());asParsedObject() Die Methode asParsedObject() ermöglicht das Abrufen der geparsten Version des Payloads, wie sie an die Plattform gesendet wurde. Einige Kommunikationsplattformen wie Actility und The Things Stack sind in der Lage, zusätzlich zu den Binärdaten eine verarbeitete Version der Payload-Informationen zu senden. Diese Methode ermöglicht den direkten Zugriff auf die von diesen Plattformen gesendeten Informationen. Beachten Sie, dass das Ergebnis null sein kann, wenn keine verarbeiteten Daten empfangen wurden.
Beispiel 1
Dieses Beispiel zeigt den von der Kommunikationsplattform verarbeiteten Payload-Inhalt über die Log-Konsole.
env.log(payload.asParsedObject());setAsBytes(bytesContent) Die Methode setAsBytes() ermöglicht das Festlegen des Payload-Inhalts als Byte-Array. Diese Methode wird normalerweise beim Erstellen von Downlinks verwendet.
Parameter
- bytesContent (array of bytes): new payload content, expressed as a byte array.
Beispiel 1
Dieses Beispiel zeigt, wie der Payload als Fünf-Byte-Array festgelegt wird.
payload.setAsBytes([9, 8, 7, 6, 5]);setAsString(stringContent) Die Methode setAsString() ermöglicht das Festlegen des Payload-Inhalts als Text. Diese Methode wird normalerweise beim Erstellen von Downlinks verwendet.
Parameter
- stringContent (string): new payload content, expressed as text.
Beispiel 1
Dieses Beispiel zeigt, wie der Payload als Text festgelegt wird.
payload.setAsString("Some text");setAsJsonObject(objectContent) Die Methode setAsJsonObject() ermöglicht das Festlegen des Payload-Inhalts als Objekt, das in seine JSON-Format-Darstellung konvertiert wird. Diese Methode wird normalerweise beim Erstellen von Downlinks verwendet.
Parameter
- objectContent (object): new payload content, expressed as an object.
Beispiel 1
Dieses Beispiel zeigt, wie der Payload als Objekt festgelegt wird.
payload.setAsJsonObject({ on: true, dimLevel: 65 });____________________________________________________________________________________________________________________________
Netzwerksignal
payload.rssi.quality
Misst die Qualität des Signals, mit dem die Nachricht empfangen wird. Es handelt sich um einen Prozentsatz, dessen Wert zwischen 0 und 100 liegen kann.
Javascript
var rssiQuality = payload.rssi.quality;
env.log("Quality:", rssiQuality);
Ejemplo:
Json
"rssi":
{
"quality": 87
}Signalstärke
payload.rssi.strength
Ist die Signalstärke. Misst die Leistung, im Allgemeinen in Dezibel. Sie ist besser, wenn die Zahl niedriger ist.
Javascript
var rssiStrength = payload.rssi.strength;
env.log("Strength:", rssiStrength);
Ejemplo:
Json
"rssi": {
"strength": 8
}Signaltyp
payload.rssi.type
Bezieht sich auf den Typ der Kommunikationsmethode, die vom Gerät zum Senden der Nachricht verwendet wird. Zum Beispiel: LoRaWAN, NbIoT, LTE usw.
Javascript
var rssiType = payload.rssi.type;
env.log("Type:", rssiType);
Json
Ejemplo:
"rssi":
{
"type": "lora"
}PORT
payload.port
Der logische Port, der vom Gerät verwendet wird und zur Identifizierung des Datentyps oder -formats dient.
Javascript
var port = payload.port;
env.log("Port:", port);
Json
"port": 1TOPIC
payload.topic
Der Kanal, über den die Nachricht empfangen wurde. Nützlich für Architekturen mit mehreren Routen oder vom Typ MQTT.
javascript
var topic = payload.topic;
env.log("Topic:", topic);
Json
"topic": "uplink/temperature"LATITUDE
payload.latitude
Gibt die Nord-/Süd-Position an, von der die Nachricht gesendet wurde.
var latitude = payload.latitude; env.log("Latitude:", latitude);
javascript
var latitude = payload.latitude;
env.log("Latitude:", latitude);
Json
"latitude": 19.4326LONGITUDE
payload.longitude
Gibt die Ost-/West-Position an, von der die Nachricht stammt.
Javascript
var longitude = payload.longitude;
env.log("Longitude:", longitude);
Ejemplo:
"longitude": -99.1332Höhe
payload.altitude
Stellt die Höhe in Metern über dem Meeresspiegel dar, an der sich das Gerät befindet, das die Übertragung durchgeführt hat.
javascript
var altitude = payload.altitude;
env.log("Altitude:", altitude);
Json
"altitude": 2250
DataPoint
Das DataPoint-Objekt repräsentiert einen Wert, der typischerweise verwendet wird, um den Zustand eines Endpunkts zu einem bestimmten Zeitpunkt darzustellen. Eigenschaften value (number)...
Batteriestatus
Das Batteriestatus-Objekt repräsentiert den Status einer Gerätebatterie. Dieses Objekt wird normalerweise verwendet, um den Batteriestand über die updateDeviceBattery-Methode zu aktualisieren...