Perl y IA: Automatización del hogar personalizada

Fuentes: Perl mit AI

Este artículo del blog de PetaMem, presentado originalmente en GPW 2016, explora un enfoque innovador para la automatización de viviendas complejas utilizando Perl y, más recientemente, inteligencia artificial (IA). La necesidad surgió de la falta de sistemas de automatización de viviendas robustos y personalizables disponibles en el mercado. El autor describe cómo construyeron sus propios sistemas, inicialmente utilizando Victron Modbus y ECS BMS (Battery Management System) gestionados con scripts Perl. Estos scripts permiten la consulta y control de diversos aspectos del sistema, como el estado de las baterías, la temperatura de las celdas y la detección de dispositivos Modbus en la red. Se enfatiza la preferencia por la reimplementación de funcionalidades en lugar de depender de CPAN (Comprehensive Perl Archive Network) debido a preocupaciones sobre la calidad y el mantenimiento de las contribuciones externas. Esto llevó a la creación de herramientas personalizadas como ecs_bms_tool y Wmodbus.

El artículo introduce el concepto de “Ganglion”, una arquitectura distribuida basada en nodos autónomos que operan independientemente del servidor central, utilizando un modelo similar al de un cerebro de insecto. Estos nodos se comunican a través de un protocolo propietario basado en hardware (CSMA/CR) diseñado para la longevidad y la fiabilidad (50 años de vida útil esperada), evitando alternativas como WiFi, Zigbee o RS485 por sus limitaciones. El sistema se basa en STM32 microcontroladores y FreeRTOS, con una configuración basada en YAML para la gestión de la configuración. Un aspecto clave es el uso de SELV (Safety Extra Low Voltage) para la alimentación de la iluminación, lo que permite que las luces permanezcan encendidas incluso en caso de fallo del inversor.

La parte más reciente del artículo se centra en el uso de IA para acelerar el desarrollo de software Perl. Se describe cómo la IA se utilizó para crear un parser de MIB (Management Information Base) para protocolos de red, logrando una tasa de éxito superior a la de las implementaciones en Python y Go. Este trabajo culminó en el desarrollo de PetaPerl, un nuevo intérprete de Perl 5 escrito en Rust y generado por IA, con el objetivo de alcanzar niveles de rendimiento comparables a V8. El proyecto destaca la importancia de la colaboración entre humanos (para la estrategia y arquitectura) y la IA (para la ejecución y la iteración), aunque reconoce la complejidad inherente de Perl 5 y los desafíos que implica su reimplementación.