Data payload
El objeto data payload representa un payload recibido desde un dispositivo, por ejemplo un dispositivo con conectividad MQTT, HTTP, o LoRaWAN. El objeto permite acceder a los datos recibidos en forma binaria, como texto, como objeto Json, y de otras formas. Este objeto se recibe usualmente como parámetro en ciertos scripts, como los de conversión de datos MQTT, HTTP, o LoRaWAN.
Propiedades
### port (int, sólo disponible para paquetes LoRaWAN) La propiedad port indica el puerto LoRaWAN al cual el dispositivo envió el payload. Esta propiedad sólo tiene valor para payloads recibidos a través de una red LoRaWAN. Para los demás medios de comunicaciones, el valor es siempre cero.
Ejemplos
Este ejemplo muestra el puerto del payload en la consola de log.
env.log('Payload port: ', payload.port);### topic (string, sólo disponible para paquetes MQTT) La propiedad topic indica el topic de MQTT al cual el dispositivo envió el payload. Esta propiedad sólo tiene valor para payloads recibidos a través de MQTT. Para los demás medios de comunicaciones, el valor es siempre un string vacío.
Ejemplos
Este ejemplo muestra el topic del payload en la consola de log.
env.log('Payload topic: ', payload.topic);### buildResult (enum, sólo para downlinks)
La propiedad buildResult permite indicar el resultado de la construcción de un payload para downlinks. Esto es típicamente utilizado en la función buildDownlink() del script de procesamiento de datos para LoRaWAN y MQTT. Los valores posibles para esta propiedad, son los siguientes:
- downlinkBuildResult.ok (0): .
- downlinkBuildResult.error (1): .
- downlinkBuildResult.unsupported (2): .
Ejemplos
Este ejemplo muestra un fragmento de código en el que se indica un mensaje de error durante la creación de un payload de downlink.
payload.buildResult = downlinkBuildResult.error;
payload.errorMessage = { en: "Invalid parameter", es: "Parámetro no válido" };### errorMessage (string o multi-language literal, sólo para downlinks) La propiedad errorMessage permite indicar un mensaje de error durante la construcción de un payload para downlinks. Esto es típicamente utilizado en la función buildDownlink() del script de procesamiento de datos para LoRaWAN y MQTT, cuando se utiliza el valor downlinkBuildResult.error en la propiedad buildResult. El valor asignado a esta propiedad puede ser un string, o un objeto multi-language literal.
Ejemplos
Este ejemplo muestra un fragmento de código en el que se indica un mensaje de error durante la creación de un payload de downlink.
payload.buildResult = downlinkBuildResult.error;
payload.errorMessage = { en: "Invalid parameter", es: "Parámetro no válido" };### requiresResponse (boolean, sólo para downlinks)
La propiedad requiresResponse permite indicar si el mensaje que se está construyendo necesita una respuesta por parte del dispositivo, o si debe considerarse que el comando se completó correctamente tan pronto como el comando es enviado.
- Si la propiedad tiene valor false (valor por defecto), se considerará que el comando ha sido enviado, tan pronto como el payload es enviado al broker MQTT (en el caso de dispositivos MQTT), o el payload sea encolado en el gateway LoRaWAN (en el caso de dispositivos LoRaWAN).
- Si la propiedad tiene valor true, el comando quedará abierto hasta que el propio dispositivo envíe una respuesta al comando.
El valor por defecto de esta propiedad es false.
Ejemplos
Este ejemplo muestra un fragmento de código en el que se indica que el payload no requiere respuesta del dispositivo.
payload.requiresResponse = false;### latitude (double, sólo para uplinks) La propiedad latitude permite conocer la latitud en la que se encuentra el dispositivo que ha enviado datos. Esta propiedad sólo está disponible si el proveedor de la información ha podido calcular la ubicación del dispositivo mediante triangulación o algún método equivalente.
Ejemplos
Este ejemplo muestra un fragmento de código que muestra la latitud del dispositivo.
env.log("Latitude: ", payload.latitude);### longitude (double, sólo para uplinks) La propiedad longitude permite conocer la longitud en la que se encuentra el dispositivo que ha enviado datos. Esta propiedad sólo está disponible si el proveedor de la información ha podido calcular la ubicación del dispositivo mediante triangulación o algún método equivalente.
Ejemplos
Este ejemplo muestra un fragmento de código que muestra la longitud del dispositivo.
env.log("Longitude: ", payload.longitude);### altitude (double, sólo para uplinks) La propiedad altitude permite conocer la altitud en la que se encuentra el dispositivo que ha enviado datos. Esta propiedad sólo está disponible si el proveedor de la información ha podido calcular la ubicación del dispositivo mediante triangulación o algún método equivalente.
Ejemplos
Este ejemplo muestra un fragmento de código que muestra la altitud del dispositivo.
env.log("Altitude: ", payload.altitude);Métodos
### asBytes() El método asBytes() permite obtener el contenido del payload como un array de bytes. Esto se utiliza principalmente cuando el payload debe ser procesado en forma binaria.
Ejemplo 1
Este ejemplo muestra el contenido del payload como bytes, a través de la consola de log.
payload.asBytes().forEach(element => env.log(element)); ### asString() El método asString() permite obtener el contenido del payload como un string, convirtiendo el contenido binario a string, y asumiendo una codificación UTF-8. Esto se utiliza principalmente cuando el payload debe ser procesado como texto.
Ejemplo 1
Este ejemplo muestra el contenido del payload como string, a través de la consola de log.
env.log(payload.asString());### asJsonObject() El método asJsonObject() permite obtener el contenido del payload como un objeto, asumiendo que el payload es un texto codificado en formato Json. Esto se utiliza principalmente cuando el payload debe ser procesado como texto Json.
Ejemplo 1
Este ejemplo muestra el contenido del payload como objeto Json, a través de la consola de log.
env.log(payload.asJsonObject());### asParsedObject() El método asParsedObject() permite obtener la versión parsed del payload, tal como fue enviada a la plataforma. Algunas plataformas de comunicaciones, tales como Actility y The Things Stack, son capaces de enviar una versión procesada de la información del payload, además de los datos binarios. Este método permite acceder a la información enviada por dichas plataformas, en forma directa. Nótese que el resultado puede ser null si no se han recibido datos procesados.
Ejemplo 1
Este ejemplo muestra el contenido del payload procesado por la plataforma de comunicaciones, a través de la consola de log.
env.log(payload.asParsedObject());### setAsBytes(bytesContent) El método setAsBytes() permite establecer el contenido del payload como un array de bytes. Este método se utiliza normalmente en la creación de downlinks.
Parámetros
- bytesContent (array of bytes): nuevo contenido del payload, expresado como byte array.
Ejemplo 1
Este ejemplo muestra el cómo establecer el payload como un array de cinco bytes.
payload.setAsBytes([9, 8, 7, 6, 5]);### setAsString(stringContent) El método setAsString() permite establecer el contenido del payload como texto. Este método se utiliza normalmente en la creación de downlinks.
Parámetros
- stringContent (string): nuevo contenido del payload, expresado como texto.
Ejemplo 1
Este ejemplo muestra el cómo establecer el payload como texto.
payload.setAsString("Some text");### setAsJsonObject(objectContent) El método setAsJsonObject() permite establecer el contenido del payload como un objeto, que será convertido a su representación en formato Json. Este método se utiliza normalmente en la creación de downlinks.
Parámetros
- objectContent (object): nuevo contenido del payload, expresado como objeto.
Ejemplo 1
Este ejemplo muestra el cómo establecer el payload como objeto.
payload.setAsJsonObject({ on: true, dimLevel: 65 });____________________________________________________________________________________________________________________________
Señal de Red
payload.rssi.quality
Mide la calidad de la señal con la que se recibe el mensaje. Es un porcentaje y su valor puede variar entre 0 y 100
Javascript
var rssiQuality = payload.rssi.quality;
env.log("Quality:", rssiQuality);
Ejemplo:
Json
"rssi":
{
"quality": 87
}Fuerza de la Señal
payload.rssi.strength
Es la fuerza de la señal. Mide la potencia, generalmente en decibeles. Es mejor cuando el número es menor.
Javascript
var rssiStrength = payload.rssi.strength;
env.log("Strength:", rssiStrength);
Ejemplo:
Json
"rssi": {
"strength": 8
}Tipo de Señal
payload.rssi.type
Referencia el tipo de método de comunicación utilizado por el dispositivo para el envío del mensaje. Por ejemplo: LoRaWAN, Nbiot, lte, etc
Javascript
var rssiType = payload.rssi.type;
env.log("Type:", rssiType);
Json
Ejemplo:
"rssi":
{
"type": "lora"
}PUERTO
payload.port
El puerto lógico utilizado por el dispositivo que sirve para identificar el tipo de formato o su formato
Javascript
var port = payload.port;
env.log("Port:", port);
Json
"port": 1TÓPICO
payload.topic
El canal por donde se recibió el mensaje. Útiles para arquitecturas con múltiples rutas o tipo MQTT
javascript
var topic = payload.topic;
env.log("Topic:", topic);
Json
"topic": "uplink/temperature"LATITUD
payload.latitude
Indica la posición norte/sur desde donde se envió el mensaje.
var latitude = payload.latitude; env.log("Latitude:", latitude);
javascript
var latitude = payload.latitude;
env.log("Latitude:", latitude);
Json
"latitude": 19.4326
LONGITUD
payload.longitude
Indica la posición este/oeste de donde provino el mensaje.
Javascript
var longitude = payload.longitude;
env.log("Longitude:", longitude);
Ejemplo:
"longitude": -99.1332Altitud
payload.altitude
Representa la altura en metros sobre el nivel del mar donde se encuentra el dispositivo que realizó la transmisión
javascript
var altitude = payload.altitude;
env.log("Altitude:", altitude);
Json
"altitude": 2250
DataPoint
El objeto DataPoint representa un valor, que normalmente se utiliza para representar el estado de un endpoint en un momento determinado. Propiedades value...
Battery status
El objeto battery status representa el estado de una batería de un dispositivo. Este objeto normalmente se utiliza para actualizar el nivel de batería a través...