En la ventana de comunicaciones, en la pestaña “Wifi, Serial y Modbus” se pueden configurar los parámetros relacionados a la interfaz wifi.
Aquí se puede seleccionar el modo de funcionamiento entre las siguientes opciones:
El RTU-X permite la posibilidad de quedar en modo Access Point y Station al mismo tiempo. La opción de Ethernet solo es configurable en el modelo DIN a partir de la versión 3.3.08 de firmware.
En la ventana de comunicaciones, en la pestaña “Wifi, Serial y Modbus” se pueden configurar los parámetros relacionados a las interfaces seriales RS-485. Las interfaces seriales RS-485 son módulos de expansión opcionales.
Para cada interfaz, se puede configurar la velocidad y la paridad.
En la ventana de comunicaciones, en la pestaña “Wifi, Serial y Modbus” se pueden configurar los parámetros relacionados a Modbus.
Los parámetros son:
En la ventana de comunicaciones, en la pestaña “Módem, Bluetooth, NTP” se pueden configurar los parámetros relacionados al módem. El módem es un módulo opcional.
Los parámetros que se pueden configurar son:
El RTU-X cuenta de base con conectividad BLE 4.2 que puede utilizarse para conectarse al equipo desde el software de configuración y también para actuar como maestro de otros dispositivos BLE, como sensores de temperatura y humedad.
En la ventana de comunicaciones, en la pestaña “Módem, Bluetooth, NTP” se pueden configurar los parámetros relacionados a Bluetooth.
Se debe seleccionar el nombre del dispositivo (será el nombre con el que se encuentre) y el pin de seguridad, que será solicitado a la hora de conectarse.
En la ventana de comunicaciones, en la pestaña “Módem, Bluetooth, NTP” se puede establecer la configuración de un servidor NTP para la sincronización horaria.
Se debe seleccionar:
El protocolo MQTT es un protocolo de comunicaciones sobre TCP/IP que ha sido adoptado como uno de los estándares más utilizados para dispositivos de IoT.
El RTU-X utiliza MQTT para el envío de los registros del log a un servidor en la nube, pero también se utiliza para realizar otras funciones más complejas cuando el RTU-X se encuentra conectado a Thingsboard; como la actualización de toda la configuración, la sincronización de variables compartidas o el envío de comandos RPC.
Los parámetros a configurar para la conexión MQTT son los siguientes:
Para la opción de formato Thingsboard, solo se debe configurar el URI, usuario (token) que identifica al dispositivo de forma única en la plataforma y certificado (en caso de usar mqtts). Los tópicos están predeterminados. En los demás formatos los tópicos son definidos por el usuario.
Cuando se utilice la instancia Telemetry+ de Nettra, se debe seleccionar el formato Thingsboard y completar únicamente el usuario (token) que será proporcionado por Nettra. El URI y certificado son los valores que se cargan por defecto al seleccionar Thingsboard.
Cuando se habilita MQTT, los datos registrados mediante las sentencias log y report, son transmitidos utiizando este protoclo de transporte. Esto no es compatible con la habilitación del protocolo LoraWan.
Ambas funciones se pueden usar con variables de tipo telemetry o attribute.
Cuando se selecciona Thingsboard como formato para la conexión MQTT, el RTU-X implementa funcionalidades adicionales además del envío del log por MQTT.
A continuación, se describen estas funcionalidades.
Cuando una variable del script se define con el prefijo shared, el valor de la variable se sincroniza con el valor del atributo compartido en Thingsboard con el mismo nombre si existe.
Esto se logra sin que el usuario tenga que hacer nada especial porque al establecer la conexión MQTT, el RTU-X se suscribe automáticamente a los topics
El RTU-X publica automáticamente al servidor una lista de variables internas de utilidad. Las mismas son registradas en el sistema como atributos de cliente.
Las siguientes variables se publican cada vez que se establece la conexión con el servidor:
Variable | Detalle |
model | RTU-X model (DIN o IP68) y versión de hardware |
mac_wifi | Dirección MAC del módulo wifi. |
ext1 | Información del módulo conectado en el sócalo de extensión 1. |
ext2 | Información del módulo conectado en el sócalo de extensión 2. |
modem_imei | IMEI del módem (si hay un módem presente en el sócalo de comunicación). |
modem_imsi | IMSI de la SIM (si hay un módem presente en el sócalo de comunicación). |
Las siguientes variables se envían periódicamente cada 10 minutos:
Variable | Detalle |
battery | Porcentaje de batería. |
battery_status | Estado de funcionamiento de la batería. Puede ser Charged, Charging o No power. |
internal_temperature | Temperatura interna del RTU-X |
modem_signal | Nivel de señal del módem en dBm. |
wifi_signal | Nivel de señal wifi en dBm. |
En la tabla siguiente se describe el formato de JSON que se transmite la telemetría mediante MQTT.
Formato | Variable telemetry |
JSON y Thingsboard |
donde XXX es el timestamp en UTC en formato unix en milisegundos de los registros |
Ultralight 2.0 |
donde TTT es el timestamp en UTC en formato ISO8601 |
Predix |
|
Todos los registros de log creados con una misma fecha/hora se envían en un mismo paquete MQTT.
Si la conexión se pierde, todos los registros quedan almacenados en el log y se envían cuando se reestablece la conexión.
Formato | Variable attribute |
JSON y Thingsboard |
|
Ultralight 2.0 |
|
Predix |
|
RPC significa “Remote Procedure Call” y se utiliza para enviar comandos y consultas desde un servidor. El formato de envío de comandos y l respuesta a dichos comandos depende del formato utilizado. A continuación se detallan los comandos disponibles.
Función | Descripción | Comando | Respuesta |
set | Modifica una variable de tipo telemetry, attribute o shared, donde NAME es el nombre de la variable y VALUE el valor |
|
|
get | Consulta una variable telemetry, attribute o shared, donde NAME es el nombre de la variable |
|
|
resend_log | Solicita reenvío de los últimos N registros almacenados en el log de eventos |
|
|
timezone | Define el timezone del RTU-X, donde N es el nuevo huso horario |
|
|
reset | Produce un reset del RTU-X |
|
Sin respuesta |
Función | Descripción | Comando | Respuesta |
set | Modifica una variable de tipo telemetry, attribute o shared, donde NAME es el nombre de la variable y VALUE el valor |
|
|
get | Consulta una variable telemetry, attribute o shared, donde NAME es el nombre de la variable |
|
|
resend_log | Solicita reenvío de los últimos N registros almacenados en el log de eventos |
|
|
unixtime | Define la hora del RTU-X en GMT-0. T es el instante actual en formato unix |
|
|
localtime | Define la hora local del RTU-X a partir de año, mes, día, horas, minutos y segundos del instante actual |
|
|
timezone | Define el timezone del RTU-X, donde N es el nuevo huso horario |
|
|
reset | Produce un reset del RTU-X |
|
Sin respuesta |
Función | Descripción | Comando | Respuesta |
set | Modifica una variable de tipo telemetry, attribute o shared, donde NAME es el nombre de la variable y VALUE el valor |
|
|
get | Consulta una variable telemetry, attribute o shared, donde NAME es el nombre de la variable |
|
|
resend_log | Solicita reenvío de los últimos N registros almacenados en el log de eventos |
|
|
unixtime | Define la hora del RTU-X en GMT-0. T es el instante actual en formato unix |
|
|
localtime | Define la hora local del RTU-X a partir de año, mes, día, horas, minutos y segundos del instante actual |
|
|
timezone | Define el timezone del RTU-X, siendo N el nuevo huso horario |
|
|
reset | Produce un reset del RTU-X |
|
Sin respuesta |
A partir de la versión 3.4.0, el RTU-X puede conectarse a una red LoraWan. Para ello, en el zócalo WAN se instala un módulo RAK3172 al que se le puede conectar una antena externa.
Este es el modo de funcionamiento normal en los casos que el RTU-X está siempre encendido y conectado a una fuente estable de alimentación. Si se deshabilita esta opción, es posible controlar el encendido y apagado del módulo desde el script por medio de la variable modem_on.
Es posible seleccionar bandas entre US915 y AU915.
Las subbandas habilitan canales tomados de a ocho. Es decir, la subbanda 1 habilita los canales 0 a 7, la 2 habilita los canales de 8 a 15, etc.
Es posible seleccionar entre OTAA y ABP
Dependiendo de las restricciones de consumo eléctrico de la solución, es posible seleccionar entre clase A y C.
Permite seleccionar el data rate a utilizar de acuerdo a la banda seleccionada.
Habilita o no esta funcionalidad.
Habilita o no el envío de mensajes con solicitur de confirmación
Las claves y direcciones necesarios para establecer conexión con una red LoraWan (AppEUI, AppKEY en modo OTAA y DevADDR, NwksKEY, AppsKEY en ABP) debe ser definidas por el usuario. El devEUI del dispositivo es el definido por el fabricante del módulo y se obtiene en la pestaña principal cuando el módulo es habilitado.
Al igual que con MQTT, cuando se utiliza LoraWan existen mecanimos de intercambio de datos con una plataforma de IoT.
Para lograr la diferenciación entre tipos de datos y comandos, se utilizan varios puertos según se muestra en la siguiente tabla
Puerto | Descripción |
100 | Es utilizado para la publicación de datos almacenados en el log de eventos cuando se ejecutan las funciones log y report en el script |
101 | Se utiliza para publicar atributos de cliente, es decir, las variables declaradas como attribute en el script. |
102 | Se utiliza para recibir valores de atributos compartidos. |
103 | Se utiliza para solicitar la actualización de atributos compartidos |
104 | Se utiliza para la implementación de comandos RPC y las respuestas que correspondan |
Dado que los nombes de las variables que se transmiten son definidos por el usuario en el script del RTU-X (variables tipo telemetry), es necesario incluir los nombres de las variables reportadas además de sus valores. Entonces, a los efectos de enviar y recibir datos minimizando el overhead se utiliza una variante del formato Ultralight.
En todos los paquetes de datos que contienen más de un elemento, dichos elementos son separados por el caracter “|”. Por ejemplo, los atributos son reportados como nombre|valor.
Cuando en el script se ejecuta la sentencia log o report utilizando variables de tipo telemetry, los valores son almacenados en el log de eventos del RTU-X. Si está establecidad la conexión con un gateway, los datos son transmitidos inmediatamente con usando un payload con el formato
ts|key1|value1|key2|value2|...|keyN|valueN
Siendo ts la estampa de tiempo en formato unix correspondiente al instante en que se ejecutó la sentencia log.
keyn y valuen son el nombre y valor de cada una de las variables reportadas
Si la sentencia log se utiliza con variables tipo attribute, el formato utilizado es el mismo pero sin estampa de tiempo
key1|value1|key2|value2|...|keyN|valueN
Es posible ejecutar comandos RPC via LoraWan. La tabla siguente muestra los comandos implementados
Función | Descripción | Comando | Respuesta |
set | Modifica una variable de tipo telemetry, attribute o shared, donde NAME es el nombre de la variable y VALUE el valor |
|
|
get | Consulta una variable telemetry, attribute o shared, donde NAME es el nombre de la variable |
|
|
resend_log | Solicita reenvío de los últimos N registros almacenados en el log de eventos |
|
|
unixtime | Define la hora del RTU-X en GMT-0. T es el instante actual en formato unix (*) |
|
|
localtime | Define la hora local del RTU-X a partir de año, mes, día, horas, minutos y segundos del instante actual (*) |
|
|
timezone | Define el timezone del RTU-X, siendo N el nuevo huso horario |
|
|
reset | Produce un reset del RTU-X (*) |
|
Sin respuesta |
(*) solo tiene sentido su utilización si se configura operación en clase C.
A continuación está disponible un flow de Node-Red utilizado para testear el envío y recepción de datos.
En el mismo se utiliza un nodo HTTP para ejecutar un método POST que pone los datos en la cola de datos de envío al dispositivo conectado vía LoraWan.
Para que el flow funcione correctamente es necesario configurar el DEVEUI del RTU-X. El RTU-X debe estar configurado en el gateway para que los datos recibidos ingresen al flow. También es necesario configurar la dirección ip del gateway y las credenciales correctas para obtener el jwt necesario para que el HTTP POST funcione correctamente.