LinuxParty
Una serie de plataformas de automatización del hogar admiten Python como una extensión, pero si eres un verdadero demonio de Python, probablemente querrás Home Assistant, que coloca el lenguaje de programación al frente y al centro. Paulus Schoutsen creó Home Assistant en 2013 " como un simple guión para encender las luces cuando el sol se estaba poniendo", como dijo a los asistentes sobre su 2016 Conferencia de Linux embebido y presentación de la conferencia Open IoT. (Puedes ver el video completo a continuación).
Schoutsen, quien trabaja como ingeniero senior de software para AppFolio en San Diego, ha atraído a 20 contribuyentes activos al proyecto. Home Assistant ahora es bastante maduro, con actualizaciones cada dos semanas y soporte para más de 240 dispositivos y servicios inteligentes diferentes. El software de código abierto ( licencia MIT) se ejecuta en cualquier cosa que pueda ejecutar Python 3, desde computadoras de escritorio hasta una Raspberry Pi, y cuenta con miles de usuarios en todo el mundo.
Como la mayoría de los sistemas de automatización, Home Assistant ofrece clientes de navegadores móviles y de escritorio para controlar dispositivos domésticos inteligentes desde lejos. Sin embargo, difiere de la mayoría de las ofertas comerciales en que no tiene un dispositivo concentrador, lo que significa que no hay radios incorporados. Sin embargo, puede agregar exactamente las radios que desee, utilizando memorias USB. Tampoco hay un componente en la nube, pero Schoutsen argumenta que cualquier funcionalidad que pueda sacrificar debido a esto es más que una mejor seguridad, privacidad y flexibilidad.
"No hay dependencia en un proveedor de la nube", dijo Schoutsen. "Incluso cuando Internet se cae, la casa no se cierra, y sus datos muy privados permanecen en su casa".
Schoutsen no ofreció una gran promoción en su presentación, pero se puso a trabajar rápidamente explicando cómo funciona la plataforma. Dado que Home Assistant no es radicalmente diferente de otros marcos de IoT, una de las razones por las que se conecta fácilmente con plataformas que van desde Nest hasta Arduino hasta Kodi, la presentación es una introducción útil a los conceptos de IoT.
Para tener una mejor idea de las fortalezas de Home Assistant, recientemente le pregunté a Schoutsen por su lanzamiento de ascensor. Destacó la naturaleza gratuita y de código abierto del software, así como la privacidad y seguridad de una solución local. También notó la facilidad de instalación y descubrimiento, y la fuerza del lenguaje Python subyacente.
Extensiones fáciles
"Python hace que sea muy fácil extender el sistema", me dijo Schoutsen. “Como lenguaje dinámico, permite una flexibilidad con la que los desarrolladores de Java solo pueden soñar. Es muy fácil probar y crear prototipos de nuevas piezas en una instalación existente sin romper las cosas permanentemente. "Con la reciente introducción de MicroPython, que se ejecuta en sistemas integrados como Arduino y ESP8266, podemos ofrecer un solo idioma para todos los niveles de IoT: desde sensores hasta automatización e integración con servicios de terceros".
En la presentación ELC 2016 de Schoutsen, describió cómo Home Assistant es un programa impulsado por eventos que incorpora una máquina de estado que realiza un seguimiento de las "entidades": todos los dispositivos seleccionados y las personas a las que desea realizar un seguimiento. Cada entidad tiene un identificador, una condición de estado y atributos. Este último describe más sobre el estado, como el color y la intensidad de la luz en una bombilla inteligente Philips Hue.
Para integrar un tono Philips en el sistema, por ejemplo, necesitaría usar un “componente” ligero que sea consciente de la bombilla y de cómo leer su estado (apagado o encendido). Home Assistant ofrece componentes para cada dispositivo o servicio compatible, así como un fácil acceso a grupos de componentes como luces, termostatos, interruptores y puertas de garaje. La instalación se facilita con un componente de descubrimiento de red que escanea la red y, si tiene un dispositivo compatible, lo configura automáticamente.
El software está además equipado con un registro de servicios, que proporciona servicios a través del bus de eventos. "Podemos registrar el comando de encendido para una luz y hacer que envíe un correo electrónico o SMS", dijo Schoutsen. "Un temporizador puede enviar un evento de cambio de hora cada segundo, y un componente puede solicitar que se le notifique en un momento determinado. , o en intervalos. Según los eventos de cambio de hora, se activará la devolución de llamada de los componentes ".
Cada componente escribe su estado en la máquina de estado, emitiendo un evento de cambio de estado al bus de eventos. " El componente de luz registraría su servicio de activación dentro del registro de servicio para que cualquiera pueda disparar un evento al bus de eventos para encender la luz", dijo Schoutsen.
Puede integrar fácilmente un componente de luz con un componente detector de movimiento usando un componente de automatización. Esto escucharía los eventos del detector de movimiento y dispararía un evento de "encendido de la luz" al bus de eventos, que a su vez se reenviaría al registro de servicios. El registro luego verificará que el componente light pueda manejar el evento. "Los componentes de automatización pueden escuchar eventos, observar ciertos estados de atributos o activadores, y actuar sobre ellos", explicó Schoutsen.
Otro tipo de componente maneja la detección de presencia. " La plataforma puede verificar el enrutador para ver qué teléfonos están conectados para ver quién está en casa", dijo Schoutsen. “Otros componentes son responsables de registrar el historial de eventos y estados, o de la organización de entidades: agrupar varias entidades y resumir su estado”. Los componentes están disponibles para integrar servicios de terceros, como MQTT o IFTTT, y otros componentes exportan datos a bases de datos externas y herramientas de análisis.
Schoutsen continuó explicando conceptos como una capa de "plataforma" que se encuentra por encima de los componentes de la entidad. Cada plataforma integra una "clase base abstracta", que "actúa como el pegamento entre el dispositivo real y el representado en Home Assistant", dijo Schoutsen. Más tarde, repasó un ejemplo de código para un interruptor básico y exploró el uso de zonas de activación para geofencing.
Como dice Schoutsen, Home Assistant está "ganando mucha tracción". Mira el video completo para ver qué sucede cuando Python se encuentra con IoT.
-
Programación
- Thomas E. Kurtz, coinventor de BASIC, muere a los 96 años
- Profesor de informática del MIT prueba el impacto de la IA en la formación de programadores
- Lanzamiento del IDE de código abierto Qt Creator 14 con soporte para complementos basados en Lua
- Plantillas para Joomla - Episodio 1: Plantillas, marcos y clubes o no...
- Este es el mejor libro que he visto para aprender a programar en Python en castellano desde cero, gratis y online
- ¿Deberían los niños seguir aprendiendo a programar en la era de la IA?
- La 'obsolescencia' de VBScript confirmada por Microsoft y su eventual eliminación de Windows
- El Gran Debate: ¿Deberían los Modelos de Inteligencia Artificial Ser de Código Abierto?
- El lenguaje de programación BASIC cumple 60 años
- El CEO de Nvidia dice que los niños no deberían aprender a programar
- 40 años de Turbo Pascal: recuerdos del dinosaurio codificador que revolucionó los IDE
- Los lenguajes de programación más populares y dónde aprenderlos.
- Top 5 de los principales lenguajes de programación para desarrollar aplicaciones de escritorio Linux
- Qt Creator 12 lanzado con complementos de grabación de pantalla y Explorador de compiladores
- 10 sitios web para practicar problemas de programación