En el séptimo de esta serie de artículos sobre KNX IoT, Bruno Johnson y Wouter van der Beek nos explican la pila KNX IoT de código abierto.
A lo largo de los últimos años, la transformación digital viene siendo uno de los principales temas estratégicos en las agendas de las reuniones de los consejos de administración de las empresas. El desarrollo de servicios digitales a partir de aplicaciones basadas en la nube requiere conexiones de red basadas en el protocolo de Internet (IPv6) a dispositivos periféricos que se convierten en la interfaz del cliente. Empresas de todas las formas y tamaños en la automatización de edificios comerciales han estado pidiendo soluciones IoT inalámbricas para que esto suceda, y KNX Association ha respondido lanzando la API KNX IoT Point (KNX IoT), como la pila de código abierto.
¿Por qué lanzar una pila de código abierto?
Implantar una nueva pila es un tema caro. KNX Association aprovechó la oportunidad para financiar la implementación de la pila de código abierto KNX IoT, y esta pila fue implementada por Cascoda en nombre de KNX Association. La licencia de código abierto se ha elegido de forma que todo el mundo pueda utilizar la pila en sus productos. Como la pila es genérica, significa que se necesita una capa de portabilidad al sistema subyacente. Además, significa que falta la capa de aplicación, por ejemplo, lo que el dispositivo debe hacer. Sin embargo, para ello existe una capa de portabilidad y una capa de aplicación que permiten crear dispositivos funcionales. Por tanto, tener una pila de código abierto significa que muchas capas ya están implementadas y listas para usar.
Capa de portabilidad
La definición de pila es que existe una capa de portabilidad al sistema operativo subyacente. Esto permite la portabilidad a cualquier otro sistema. La pila admite dos puertos de sistema operativo: Windows y Linux. Ambos sistemas operativos sirven para validar la implementación y pueden utilizarse para presentar la pila.
Cuando se ejecuta la pila en dispositivos basados en Thread, hay dos puertos disponibles: uno de Cascoda, en su módulo Chili, y otro de Nordic, en sus módulos basados en zephyr.
Nivel de aplicación
El nivel de aplicación dispone de una API para crear los puntos de datos. Los puntos de datos tendrán un valor dpt y dpa y utilizarán una API para registrar retrollamadas que gestionen las funciones GET (y PUT) que deben implementarse para el punto de datos real. El fragmento de código para crear un punto de datos es el siguiente:
Los prototipos de función para las llamadas de retorno GET y PUT son los mismos, pero el comportamiento es diferente. La función GET sólo devuelve los datos. La función para devolver una variable booleana global como carga útil se representa en la siguiente función:
La función PUT tendrá una carga útil de entrada que debe utilizarse para realizar una acción; la mayoría de las veces la función PUT no tendrá una carga útil de retorno, por lo que la función para analizar un booleano en la entrada se representa en la siguiente función:
El resto de mecánicas ya forman parte de la pila:
- Aplicación de todas las tablas obligatorias.
- Incorporación segura con spake.
- Seguridad OSCORE.
KNX IoT Virtual
Además, existen dos aplicaciones de ejemplo que te permiten jugar con KNX IoT. Aunque se denominan dispositivos virtuales, implementan aplicaciones KNX IoT reales que se ejecutan en un PC y pueden considerarse como gemelos digitales. Las aplicaciones virtuales se pueden configurar con ETS.
El knx_iot_virtual_pb es una aplicación de pulsador con retroalimentación. Utiliza un botón que, tras configurarlo, puede enviar un mensaje en modo s.
El knx_iot_virtual_sa es una aplicación de actuador de interruptor. Implementa un actuador que, tras su configuración, puede mostrar el valor recibido de un mensaje en modo s.
Ambas aplicaciones de ejemplo están disponibles como código en GitHub y GitLab.
Resumen
KNX IoT puede funcionar en cualquier sistema operativo y en cualquier red IPv6. Por ejemplo, KNX IoT funciona con Wi-Fi b a Wi-Fi 6 y todas las versiones de Thread.
La pila IoT KNX de código abierto está disponible gratuitamente y puede utilizarse para crear dispositivos KNX.
Si queremos crear dispositivos de Thread, es necesaria una capa de portabilidad. Cascoda dispone de kits de desarrollo KNX IoT basados en Thread que implementan dicho puerto, así como un router con Wi-Fi y Ethernet. De este modo, se pueden crear y probar dispositivos físicos KNX IoT entre sí o con dispositivos virtuales KNX IoT, y cualquiera puede utilizar libremente aplicaciones de ejemplo.
Bruno Johnson y Wouter van der Beek son el Director general y el Director de operaciones, respectivamente, de Cascoda Limited. Cascoda es una empresa de comunicaciones que fabrica radios y módulos semiconductores IoT seguros, y lidera el desarrollo de estándares de comunicaciones IoT seguras para edificios y ciudades inteligentes. Sus productos resuelven los problemas de alcance, fiabilidad, seguridad, potencia y escalabilidad del IoT industrial y comercial mediante innovaciones patentadas y la aplicación de los últimos estándares más seguros, todo ello integrado en módulos IoT económicos de consumo ultrabajo.
Screen shots by Cascoda
Figures by Cascoda (on GitHub, as part of the stack documentation)