Command
El objeto command representa un comando que debe ser enviado a un dispositivo o endpoint. Este objeto normalmente se recibe como parámetro en el método buildDownlink como parte de un script de conversión de datos LoRaWAN o MQTT.
Propiedades
### commandId (int) La propiedad commandId indica un número interno que identifica al comando en forma única. Si el dispositivo es capaz de contestar al comando, la respuesta debe contener el mismo commandId.
Ejemplos
El siguiente es un ejemplo basado en la documentación del método buildDownlink en la sección de conversión de datos LoRaWAN o MQTT.
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)
La propiedad type indica el tipo de comando. Los valores posibles son los siguientes:
- commandType.onOff (1): indica que el comando es de tipo on/off, es decir que es para encender, apagar, o hacer toggle de un endpoint.
- commandType.dimmer (2): indica que el comando es para alterar el nivel de un dimmer.
- commandType.closure (3): indica que el comando es para controlar un cerramiento (closure), tal como una cortina o persiana.
- commandType.thermostat (4): indica que el comando es para controlar un termostato.
- commandType.management (5): indica que el comando es para administrar el dispositivo (reboot, firmware upgrade, etc.).
- commandType.custom (6): indica que se trata de un comando definido por el usuario.
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
### onOff (objeto)
La propiedad onOff es un objeto que contiene los parámetros del comando, cuando es de tipo commandType.onOff. El objeto tiene las siguientes propiedades:
- type (int enum): indica el tipo de comando on/off, entre los siguientes:
- onOffCommandType.turnOn (0): indica que el comando es para encender el endpoint.
- onOffCommandType.turnOff (1): indica que el comando es para apagar el endpoint.
- onOffCommandType.toggle (2): indica que el comando es para alternar el endpoint (toggle).
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
### dimmer (objeto)
La propiedad dimmer es un objeto que contiene los parámetros del comando, cuando es de tipo commandType.dimmer. El objeto tiene las siguientes propiedades:
- level (double): indica el nivel de dimerización como porcentaje, de cero a 100%.
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
### thermostat (objeto)
La propiedad thermostat es un objeto que contiene los parámetros del comando, cuando es de tipo commandType.thermostat. El objeto tiene las siguientes propiedades:
- type (int enum): indica el tipo de comando que se ha enviado al termostato, entre los siguientes:
- thermostatCommandType.setMode (0): el comando es para cambiar el modo del termostato.
- thermostatCommandType.setFanMode (1): el comando es para cambiar el modo del ventilador del termostato.
- thermostatCommandType.setSetpoint (2): el comando es para cambiar el setpoint.
- thermostatCommandType.setAll (3): el comando es para cambiar todos los parámetros simultáneamente.
- mode (int enum): indica el modo al que debe pasar el termostato, cuando el tipo type es thermostatCommandType.setMode, o thermostatCommandType.setAll. Los valores posibles son los siguientes:
- thermostatMode.off (1): el termostato debe ser apagado.
- thermostatMode.auto (2): el termostato debe pasar a modo auto.
- thermostatMode.heat (3): el termostato debe pasar a modo calor.
- thermostatMode.cool (4): el termostato debe pasar a modo frío.
- thermostatMode.dry (5): el termostato debe pasar a modo deshumidificación (dry).
- thermostatMode.fan (6): el termostato debe pasar a modo ventilador.
- fanMode (int enum): indica el modo de ventilador al que debe pasar el termostato, cuando el tipo type es thermostatCommandType.setFanMode, o thermostatCommandType.setAll. Los valores posibles son los siguientes:
- thermostatFanMode.auto (1): el ventilador debe pasar a modo auto.
- thermostatFanMode.low (2): el ventilador debe pasar a modo low.
- thermostatFanMode.mid (3): el ventilador debe pasar a modo mid.
- thermostatFamMode.high (4): el ventilador debe pasar a modo high.
- setpoint (double): indica el setpoint, en grados Celsius, cuando el tipo type es thermostatCommandType.setSetpoint, o thermostatCommandType.setAll.
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
### closure (objeto)
La propiedad closure es un objeto que contiene los parámetros del comando, cuando es de tipo commandType.closure. El objeto tiene las siguientes propiedades:
- type (int enum): indica el tipo de comando que se ha enviado al cerramiento, entre los siguientes:
- closureCommandType.open (0): el comando es para que el cerramiento se abra.
- closureCommandType.close (1): el comando es para que el cerramiento se cierre.
- closureCommandType.position (2): el comando es para cambiar la posición del cerramiento.
- closureCommandType.stop (3): el comando es para detener el movimiento del cerramiento.
- closureCommandType.openStop (4): el comando es para abrir el cerramiento, o detenerlo si se está moviendo.
- closureCommandType.closeStop (5): el comando es para cerrar el cerramiento, o detenerlo si se está moviendo.
- position (int): indica la posición a la cual debe moverse el cerramiento, cuando el tipo type es closureCommandType.position, como un porcentaje, entre 0% (cerrado), y 100% (abierto).
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
### management (objeto)
La propiedad management es un objeto que contiene los parámetros del comando, cuando es de tipo commandType.management. El objeto tiene las siguientes propiedades:
- type (int enum): indica el tipo de comando que se ha enviado al cerramiento, entre los siguientes:
- managementCommandType.identify (0): solicita al dispositivo que se identifique. Esto se utiliza en algunos dispositivos para que el dispositivo encienda algún indicador visual o sonoro.
- managementCommandType.reboot (1): solicita al dispositivo que se reinicie.
- managementCommandType.powerOff (2): solicita al dispositivo que se apague.
- managementCommandType.poll (3): solicita al dispositivo que envíe información actualizada lo antes posible.
- managementCommandType.updateFirmware (4): solicita al dispositivo que actualice su firmware.
- managementCommandType.setValue (5): solicita al dispositivo que cambie un valor.
- updateFirmware (object): indica los parámetros de la actualización de firmware, cuando el valor del campo type es managementCommandType.updateFirmware. Las propiedades de este objeto son las siguientes:
- downloadUrl (string): indica la URL desde la que el dispositivo debe descargar la actualización de firmware.
- setValue (object): el objeto setValue contiene la información necesaria para cambiar el valor, cuando valor del campo type es managementCommandType.setValue. Las propiedades de este objeto son las siguientes:
- newValue (double): indica el nuevo valor que debe asignarse.
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
### custom (objeto)
La propiedad custom es un objeto que contiene los parámetros del comando, cuando es de tipo commandType.custom. El objeto tiene las siguientes propiedades:
- type (int): valor arbitrario indicando el tipo de comando custom.
- data (string): valor arbitrario que se desea enviar al dispositivo.
Ejemplos
Se presenta un ejemplo completo al comienzo de esta sección.
RSSI status
El objeto RSSI status representa nivel de señal de una conexión inalámbrica de un dispositivo. Este objeto normalmente se utiliza para actualizar el nivel de...
Multi-language literal
El objeto multi-language literal permite construir mensajes en múltiples idiomas, especialmente en mensajes de error o informativos. Propiedades en (string)...