GNU/Linux >> Tutoriales Linux >  >> Linux

Domótica:Ejecución de Home Assistant con Podman

Los dispositivos inteligentes nos rodean y la larga lista de dispositivos que vienen listos para conectarse al Internet de las cosas (IoT) crece cada día más. Por ejemplo, la popularidad de las bombillas inteligentes ha aumentado rápidamente en los últimos años y el mercado sigue creciendo, tanto que se prevé que sea "el dispositivo doméstico inteligente de más rápido crecimiento en los próximos cinco años". Si bien algunos grandes nombres en el campo dominan el mercado, hay muchos competidores más pequeños que se unen a la refriega y ofrecen alternativas más económicas con aún más funciones. Esto es genial para la competencia, pero plantea una preocupación seria y una situación con la que muchos administradores de sistemas están muy familiarizados:una pesadilla de integración.

[ También te puede interesar: Ayuda con la investigación de COVID-19 usando Folding@home en Linux]

El problema es que cada fabricante tiende a proporcionar su propia solución integrada y de código cerrado para controlar sus dispositivos, generalmente en forma de una aplicación móvil. Pero, ¿qué sucede cuando decides comprar un nuevo dispositivo de un fabricante diferente al que ya tienes integrado en la domótica de tu hogar? Lo más probable es que termine teniendo que usar varias aplicaciones para controlar los dispositivos, y no comencemos hablando de cómo hacer que funcionen juntos de alguna manera automatizada. Hay servicios en la nube disponibles para ayudar a solucionar este problema, proporcionando un medio para crear aplicaciones y automatización para controlar dispositivos de varios fabricantes. Dichos servicios ofrecen una gran plataforma para iniciar su viaje hacia la automatización de dispositivos inteligentes, pero estos servicios tienden a operar con una suscripción paga o en modelos "freemium" muy limitados, y se encontrará cada vez más dependiente de este servicio basado en la nube. .

En 2013, se inició un proyecto de código abierto para abordar este tipo de problemas y llevar el control local de los dispositivos inteligentes desde la nube al hogar. Hoy en día, el proyecto se está fortaleciendo, con más de 2500 colaboradores y nuevas integraciones y funciones que se implementan con frecuencia. En este artículo, te presentaré la plataforma de automatización del hogar de código abierto llamada Home Assistant.

Implementación del contenedor de Home Assistant

Home Assistant se puede implementar utilizando varios métodos de instalación, de los cuales la forma recomendada es implementar el sistema operativo Home Assistant, que viene con todo lo que necesita. Sin embargo, usaremos la imagen del contenedor para esta muestra, que nos dará una idea rápida de cómo funciona Home Assistant. Los siguientes pasos asumen que ya tiene un tiempo de ejecución de contenedor implementado en su sistema, como Podman. Home Assistant opera en el puerto TCP 8123, por lo que debe asegurarse de que este puerto no esté en uso en su sistema.

1. Comience tirando de la imagen del contenedor:

$ podman pull docker.io/homeassistant/home-assistant:stable

2. Configure un directorio de configuración:

$ mkdir ~/hass_config

3. Implemente el contenedor usando Podman:

$ podman run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v ~/hass_config:/config:Z \
--network=host \
homeassistant/home-assistant:stable

4. Una vez que el contenedor esté en funcionamiento, abra su navegador web preferido y diríjase a http://127.0.0.1:8123/ . Cree su cuenta de usuario administrador completando los campos obligatorios.

5. Si ya tiene algunos dispositivos inteligentes conectados a su red doméstica, puede encontrar en la siguiente pantalla que Home Assistant ya los ha descubierto y los presenta como integraciones para instalar de inmediato. Omitiremos este paso y veremos cómo configurar integraciones en la siguiente sección. Presiona Finalizar para continuar con la interfaz gráfica de usuario de Lovelace de Home Assistant y explorar un poco para familiarizarse con la disposición del terreno.

Nota :Si nota que faltan algunos elementos del menú o un mensaje de error como el siguiente en su registro de Home Assistant:

No se pueden configurar las dependencias de default_config. La configuración falló para las dependencias:automatización.

Simplemente reinicie Home Assistant a través de Configuración -> Controles del servidor -> Reiniciar .

Integraciones y Automatización

Con su contenedor de Home Assistant desplegado, sigamos con la configuración. Integraciones en Home Assistant nos brinda la capacidad de interactuar con entradas externas, ya sea una API en línea como un horario de transporte público o un dispositivo inteligente físico como una tira de luz LED o un humidificador inteligente. En el momento de escribir este artículo, Home Assistant ofrece una colección de 1765 integraciones, y esa biblioteca está creciendo rápidamente. Descubrirá que muchas de las principales marcas ya son compatibles, y si su hogar ya contiene algún tipo de bombilla inteligente, TV o máquina de café, entonces existe una gran posibilidad de que Home Assistant ya tenga integración para ello. Si no, y quiere ensuciarse las manos, el proyecto es de código abierto, está alojado en GitHub y siempre está buscando contribuciones.

Para este ejemplo, configuraré Met.no integración para recuperar pronósticos del tiempo en los países nórdicos. No dude en utilizar otro proveedor de servicios meteorológicos si lo desea.

  1. En la GUI de Home Assistant, navegue hasta Configuración -> Integraciones -> Añadir Integración . Busque "Meteorologisk institutt (Met.no)" e ingrese el nombre deseado, la latitud y la información de longitud. Es posible que Home Assistant ya los haya completado, pero si no es así, puede recuperarlos en otro lugar de Internet e ingresarlos usted mismo.
  2. Presione Enviar y luego Finalizar para agregar la integración a su configuración de Home Assistant. Con el panel de navegación de la izquierda, haga clic en Descripción general para ir a su GUI de Lovelace.
  3. De forma predeterminada, Home Assistant está configurado para llenar la GUI de Lovelace automáticamente, pero en algún momento querrás tomar el control y configurarlo como quieras. Haz clic en el icono del menú de kebab (tres puntos verticales) arriba a la derecha y selecciona Editar panel. -> Toma el Control .
  4. Haga clic en Agregar tarjeta y, para el tipo de tarjeta, seleccione Pronóstico del tiempo . Luego se le presentarán las opciones de configuración para esta tarjeta. En la mayoría de los casos, Home Assistant habrá seleccionado automáticamente la entidad correcta para ti, pero puedes usar el menú desplegable para cambiar la entidad si es necesario. En mi caso, le di a mi integración de Met.no el nombre de "Inicio", por lo que la entidad se llama "weather.home" automáticamente. También configuré el Atributo secundario a "Velocidad del viento".
  5. Después de presionar Guardar , la tarjeta se agrega a la GUI de Lovelace. Puede eliminar tarjetas haciendo clic en el ícono del menú de kebab en la parte inferior derecha de la tarjeta respectiva y seleccionando Eliminar tarjeta. . Cuando haya terminado de editar el tablero, presione la X arriba a la izquierda para volver al modo de vista.

Ahora que hemos agregado una integración, podemos ver cómo configurar una automatización. Crearemos una automatización que envíe un breve informe meteorológico a su teléfono a través de una notificación automática cada mañana. Para que esto funcione, deberá instalar la aplicación Home Assistant en su dispositivo móvil e iniciar sesión. Una vez que haya iniciado sesión, su teléfono comenzará a informar a su servidor de Home Assistant. Buscando en Configuración -> Entidades , encontrará una lista de los diversos sensores que su teléfono informa a Home Assistant. Se debe permitir la comunicación a través del puerto TCP 8123 entre su teléfono y su contenedor de Home Assistant en la red local, por lo que es posible que deba ajustar las reglas de su firewall en consecuencia.

1. Dirígete a Configuración -> Automatizaciones -> Agregar automatización -> Empezar con una automatización vacía .

2. Asigne a la automatización el nombre "Informe meteorológico matutino".

3. Bajo Disparadores , selecciona Dom para el tipo y asegurar Evento está configurado para Amanecer . Puede agregar un desplazamiento como "01:00:00" para una hora después del amanecer o "-01:00:00" para una hora antes del amanecer. También puede establecer un tiempo fijo usando el Tiempo tipo.

4. En Acciones , establezca el tipo en Servicio de llamadas y configurar el Servicio a "notify.mobile_app_your_phone_model" . Para Servicio data, necesitamos escribir nuestra configuración en formato YAML, y usaremos plantillas Jinja2 para ejecutar algunas declaraciones condicionales. Puedes encontrar más información sobre plantillas en Home Assistant.

title: Weather Report
message: >-
  The current temperature is {{state_attr("weather.home", "temperature") }} degrees
  with an expected maximum of {{ state_attr("weather.home","forecast")[0]["temperature"] }} degrees.
  {%if state_attr("weather.home", "forecast")[0]["precipitation"] | float == 0 %}
    There is no rain forecast today
  {% else %}
    You can expect {{ state_attr("weather.home","forecast")[0]["precipitation"] }}mm of rain today
  {% endif %}
  {% if state_attr("weather.home","wind_speed") | float > 20%}
    and it's a little windy outside, so hold on to your hat!
  {% else %}
    and it's not too windy.
  {% endif %}

5. Presiona el botón azul Guardar botón para guardar la automatización. En las Automatizaciones página, puede probar su nueva y brillante automatización haciendo clic en Ejecutar . Ahora debería tener una notificación automática en su teléfono con un breve informe meteorológico de Home Assistant que se parece a esto:

[ ¿Necesita más información sobre Ansible? Realice un curso gratuito de descripción técnica de Red Hat. Ansible Essentials:descripción técnica de la simplicidad en la automatización. ] 

Resumir

Esta es una instalación, configuración e implementación básicas de Home Assistant. Configuré una nueva integración en el panel de control de Lovelace y les di un adelanto de las automatizaciones. Aunque apenas rasqué la superficie de la abundancia de integraciones, automatizaciones y configurabilidad de Home Assistant, al menos debería darle una idea de lo que es posible. Al aprovechar al máximo las ofertas de Home Assistant, descubrirá una cantidad casi infinita de posibilidades; solo estás realmente limitado por tu imaginación. Si disfrutó de esta breve introducción, le recomiendo que continúe jugando con la imagen del contenedor para tener una idea de lo que Home Assistant puede hacer por usted. Si desea configurar un entorno de producción, consulte el sistema operativo Home Assistant.


Linux
  1. Administre los directorios de inicio de los usuarios de Linux con systemd-homed

  2. Cómo eliminar cuentas de usuario con el directorio de inicio en Linux

  3. pytest ejecutándose con otra versión de python

  4. Permisos de escritura de usuario SFTP chrooted

  5. La configuración de la afinidad del proceso en ejecución con el conjunto de tareas falla

Comience con Sweet Home 3D en Linux

Tutorial de Podman:comience a usar Podman

Automatización de ServiceNow con Red Hat Ansible Automation Platform

Cómo ejecutar pods como servicios systemd con Podman

Introducción a la ejecución de un servidor OpenVPN

Bash Beginner Series #10:Automatización con Bash