
En la séptima entrega de esta serie de artículos sobre KNX IoT, Bruno Johnson y Wouter van der Beek explican la pila KNX IoT de código abierto.
La transformación digital ha sido uno de los principales temas estratégicos en las agendas de las reuniones de los consejos de administración de las empresas durante los últimos años. La oportunidad de desarrollar servicios digitales a partir de aplicaciones basadas en la nube requiere conexiones de red basadas en el protocolo de Internet (IPv6) con dispositivos periféricos que se convierten en la interfaz con el cliente. Empresas de todo tipo y tamaño del sector de la automatización de edificios comerciales han solicitado soluciones inalámbricas de IoT para hacer esto posible, y la Asociación KNX ha respondido lanzando la KNX IoT Point API (KNX IoT), que incluye una pila de código abierto.
¿Por qué lanzar una pila de código abierto?
Implementar una nueva pila es una tarea costosa. La Asociación KNX 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 la Asociación KNX. La licencia de código abierto se ha elegido de tal forma que todo el mundo pueda utilizar la pila en sus productos. Dado que la pila es genérica, se necesita una capa de adaptación al sistema subyacente. Además, implica que falta la capa de aplicación, es decir, lo que el dispositivo debe hacer. Sin embargo, para dar soporte a esto, existen una capa de adaptación y una capa de aplicación que permiten crear dispositivos funcionales. Por lo tanto, disponer de una pila de código abierto significa que muchas capas ya están implementadas y listas para su uso.

Capa de portabilidad
La definición de la pila es que cuenta con una capa de portabilidad al sistema operativo subyacente. Esto permite la portabilidad a cualquier otro sistema. La pila admite dos versiones para sistemas operativos: Windows y Linux. Ambos sistemas operativos se utilizan para validar la implementación y pueden emplearse para mostrar el funcionamiento de la pila.
Al ejecutar la pila en dispositivos basados en subprocesos, actualmente hay dos adaptaciones disponibles: una de Cascoda en su módulo Chili y otra de Nordic en sus módulos basados en Zephyr.

Nivel de aplicación
El nivel de aplicación cuenta con 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 callbacks que gestionen las funciones GET (y PUT) que deben implementarse para el punto de datos concreto. El fragmento de código para crear un punto de datos es el siguiente:

Los prototipos de las funciones para las llamadas de retorno GET y PUT son iguales, pero su comportamiento es diferente. La función GET solo devuelve los datos. La función para enviar una variable booleana global como carga útil se muestra 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 valor booleano en la entrada se representa en la siguiente función:

El resto de mecanismos ya forman parte de la pila:
- Implementación de todas las tablas obligatorias.
- Incorporación segura con Spake.
- Seguridad OSCORE.
KNX IoT Virtual
También hay dos aplicaciones de ejemplo que te permiten experimentar con KNX IoT. Aunque se denominan dispositivos virtuales, implementan aplicaciones reales de KNX IoT que se ejecutan en un ordenador y pueden considerarse un gemelo digital. Las aplicaciones virtuales se pueden configurar con ETS.
knx_iot_virtual_pb es una aplicación de pulsador con retroalimentación. Implementa un pulsador que, tras su configuración, 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 ejecutarse en cualquier sistema operativo y en cualquier red IPv6. Por ejemplo, KNX IoT funciona con Wi-Fi b hasta Wi-Fi 6 y con todas las versiones de Thread.
La pila de código abierto de KNX IoT está disponible de forma gratuita y puede utilizarse para crear dispositivos KNX.
Para los dispositivos basados en Thread se necesita una capa de portabilidad. Actualmente, Cascoda ofrece kits de desarrollo de KNX IoT basados en Thread que implementan dicha capa, así como un enrutador a Wi-Fi y Ethernet. Esto permite construir dispositivos físicos de KNX IoT y probarlos entre sí o frente a dispositivos virtuales de KNX IoT; además, hay aplicaciones de ejemplo disponibles de forma gratuita para que cualquiera pueda utilizarlas.
Bruno Johnson y Wouter van der Beek son, respectivamente, director ejecutivo y director de operaciones de Cascoda Limited. Cascoda es una empresa de comunicaciones que fabrica radios y módulos semiconductores seguros para el IoT, y lidera el desarrollo de estándares de comunicaciones seguras para el IoT destinados a edificios inteligentes y ciudades inteligentes. Sus productos resuelven problemas de alcance, fiabilidad, seguridad, consumo energético y escalabilidad para el IoT industrial y comercial mediante innovaciones patentadas y los estándares más recientes y seguros, todo ello integrado en módulos de IoT económicos y de consumo ultrabajo.
Capturas de pantalla de Cascoda
Figuras de Cascoda (en GitHub, como parte de la documentación de la pila)