Device
El objeto device representa un dispositivo instalado en la plataforma. Ciertos scripts, como los de conversión de datos LoRaWAN o MQTT, reciben como parámetro un objeto device que representa el dispositivo al cual están destinados los datos. En los scripts ejecutados desde acciones, es posible acceder a la lista de dispositivos a través de la propiedad devices de la variable global env, que representa el entorno de ejecución.
Propiedades
### address (string) La propiedad address representa la dirección del dispositivo, como texto.
Ejemplos
Este ejemplo muestra la dirección de un dispositivo en la consola de log.
env.log('Device address: ', myDevice.address);### endpoints (endpoint collection) La propiedad endpoints representa la lista de endpoints contenidos dentro del dispositivo. Esta lista es un objeto de tipo endpoint collection.
Ejemplos
Este ejemplo muestra la cantidad de endpoints de un dispositivo en la consola de log.
env.log('Endpoint count: ', myDevice.endpoints.count);### description (string) La propiedad description representa la descripción del dispositivo.
Ejemplos
Este ejemplo muestra la descripción de un dispositivo en la consola de log.
env.log('Device description: ', myDevice.description);Métodos
### updateDeviceBattery(battery) El método updateDeviceBattery() permite actualizar el estado de la batería del dispositivo, incluso en dispositivos que contengan más de una batería (por ejemplo, batería principal y de backup).
Parámetros
- battery (objeto battery status, o array de objetos battery status): este parámetro indica el estado de la batería. Si el dispositivo contiene una única batería, debe pasarse un objeto de tipo battery status. En caso de que el dispositivo contenga más de una batería, debe pasarse un array de objetos battery status, conteniendo el estado de todas las baterías. Para cada objeto pasado como parámetro, debe indicarse al menos la propiedad percentage (en caso de que el porcentaje de carga esté disponible), o la propiedad voltage (en caso de que el voltage esté disponible), o ambos. Si se omite la propiedad type, se asumirá el tipo batteryType.default. Cuando se informa el estado de múltiples baterías, es obligatorio informar la propiedad type en cada una de ellas.
Ejemplo 1
Este ejemplo muestra cómo informar un nivel de batería del 45% en un dispositivo que tiene una única batería.
myDevice.updateDeviceBattery({ percentage: 45 }); Ejemplo 2
Este ejemplo muestra cómo informar un nivel de batería del 72% para la batería principal, y del 68% para la batería secundaria, en un dispositivo que dispone de batería primaria y secundaria.
myDevice.updateDeviceBattery
(
[
{ type: batteryType.primary, percentage: 72 },
{ type: batteryType.secondary, percentage: 68}
]
);Ejemplo 3
Este ejemplo muestra cómo informar un nivel de batería de 2.92 volts, en un dispositivo con una única batería, pero que informa voltage en lugar de porcentaje de carga restante.
myDevice.updateDeviceBattery({ voltage: 2.92 });### updateDeviceFirmwareVersion(version) El método updateDeviceFirmwareVersion() permite indicar la versión de firmware instalada actualmente en el dispositivo.
Parámetros
- version (string): este parámetro indica la versión de firmware actual del dispositivo, utilizando uno de los siguientes formatos:
- “X”, donde X es un número entre 0 y 65535.
- “X.Y”, donde X e Y son números entre 0 y 65535.
- “X.Y.Z”, donde X, Y, y Z son números entre 0 y 65535.
- “X.Y.Z.W”, donde X, Y, Z, y W son números entre 0 y 65535.
Para más información sobre números de versión, visite esta página.
Ejemplo 1
Este ejemplo muestra cómo indicar que un dispositivo tiene la versión de firmware “1.2.3”.
myDevice.updateDeviceFirmwareVersion("1.2.3"); ### updateDeviceRssi(rssi) El método updateDeviceRssi() permite actualizar el nivel de señal (rssi) del dispositivo, incluso en dispositivos que contentan múltiples interfaces de comunicaciones inalámbricas.
Parámetros
- rssi (objeto rssi status, o array de objetos rssi status): este parámetro indica el nivel de señal. Si el dispositivo contiene una única interfaz inalámbrica, debe pasarse un objeto de tipo rssi status. En caso de que el dispositivo contenga más de una interfaz inalámbrica (por ejemplo, celular y Wi-Fi), debe pasarse un array de objetos rssi status, conteniendo el nivel de señal de cada interfaz. Para cada objeto pasado como parámetro, debe indicarse al menos la propiedad quality (en caso de que el porcentaje de señal esté disponible), o la propiedad strength (en caso de que el nivel de atenuación esté disponible), o ambos. Si se omite la propiedad type, se asumirá el tipo rssiType.default. Cuando se informa el estado de múltiples interfaces, es obligatorio informar la propiedad type en cada una de ellas.
Ejemplo 1
Este ejemplo muestra cómo informar un nivel de señal del 68% en un dispositivo que tiene una única interfaz de comunicaciones.
myDevice.updateDeviceRssi({ quality: 68 }); Ejemplo 2
Este ejemplo muestra cómo informar un nivel de señal del 72% para la interfaz celular, y del 68% para la interfaz WI-Fi, en un dispositivo que dispone de ambos tipos de interfaz.
myDevice.updateDeviceRssi
(
[
{ type: rssiType.cellular, quality: 72 },
{ type: rssiType.wiFi, quality: 68 }
]
);Ejemplo 3
Este ejemplo muestra cómo informar un nivel de señal con una atenuación de -68 dBm, en un dispositivo con una única interfaz de comunicaciones.
myDevice.updateDeviceRssi({ strength: -68 });### updateDeviceGeolocation(latitude, longitude) El método updateDeviceGeolocation() permite indicar la ubicación del dispositivo, indicando latitud y longitud.
Parámetros
- latitude (double): indica la latitud de la ubicación actual del dispositivo.
- longitude (double): indica la longitud de la ubicación actual del dispositivo.
Ejemplo 1
Este ejemplo muestra cómo indicar que un dispositivo está ubicado en las coordenadas (40.4052, -3.87699).
myDevice.updateDeviceGeolocation(40.4052, -3.87699);Environment
Environment es un objeto global que está siempre disponible en todos los scripts. Contiene algunas funciones básicas, que se detallan a continuación. Para...
Endpoint collection
El objeto endpoint collection representa una colección de endpoints contenidos en un dispositivo. Usualmente se accede a la lista de endpoints a través de la...