Cómo instalar Home Assistant en Raspberry Pi Zero de forma muy sencilla


Home Assistant es un software realmente ingenioso que permite a cualquiera crear lo que es esencialmente un centro inteligente de bricolaje, capaz de controlar una amplia gama de dispositivos desde prácticamente cualquier estándar existente. Sin embargo, uno de los problemas con esto es que un centro inteligente actúa como un servidor doméstico, coordinando todo tipo de eventos, acciones y, por supuesto, brindando a los usuarios una interfaz para controlar todo.

Como este es el tipo de servicio que deberá ejecutarse las 24 horas del día, los 7 días de la semana, necesitará algún hardware dedicado además de su computadora principal. La Raspberry Pi Zero W ofrece una manera de hacer esto a bajo costo, con un precio de lista de alrededor de $20 por la placa, es una opción deseable para albergar todos los servicios de software que necesita para ejecutar su hogar inteligente. Aquí repasaremos los pasos para instalar Home Assistant en Pi Zero W, junto con una revisión de si esta configuración es sostenible.

*Tenga en cuenta que, si bien es posible utilizar el Pi Zero normal para este propósito, se requerirá conectividad de red, lo que significa que será necesario un adaptador Ethernet o un dongle WiFi para esta configuración. Como tal, dado que la diferencia de precio es relativamente pequeña, se recomienda el Zero W.

Un kit puede ser una excelente opción para conseguir la mayoría de estos materiales en un solo lugar y por un mejor precio. Tenga en cuenta que este kit en particular  no tiene una tarjeta SD, ¡así que asegúrese de comprarla también!

Los elementos marcados con «Sugerido» no son estrictamente necesarios para seguir esta guía, pero le resultará mucho más fácil solucionar cualquier problema con los adaptadores. Además, un estuche puede agregar un poco de brillo extra a tu construcción para que luzca encantadora cuando esté terminada. 

Advertencia: Sea muy diligente al comprar la tarjeta SD. Hay muchos informes de personas que reciben tarjetas falsas a pesar de comprarlas en una página confiable de SanDisk en Amazon. Siempre inspeccione cuidadosamente la tarjeta y conéctela a una computadora para verificar la capacidad antes de usarla.

Paso 1: Instalar Home Assistant en Pi Zero

El primer paso es descargar la imagen del sistema operativo Home Assistant para Zero. Este enlace debería descargar la imagen correcta para Zero ; de lo contrario, diríjase a la página de lanzamiento de Github y descargue la imagen que termina con rpi0-w. La imagen puede tardar un poco en descargarse, ya que ocupa aproximadamente 250 MB en su forma comprimida, por lo que mientras se descarga, prepararemos lo necesario para escribir la imagen en una tarjeta SD.

Descargue la versión del instalador de balenaEtcher para su plataforma. Ejecute el instalador y siga las instrucciones en pantalla para instalar el programa. En este punto, si normalmente usas un programa diferente para escribir imágenes de tarjetas SD, no dudes en usarlo, pero no hay garantía de que otro software escriba la imagen correctamente, por lo que es mejor usar balenaEtcher si es posible.

Si su computadora no tiene una ranura para tarjeta SD (la mía no), necesitará usar un adaptador, hay muchos disponibles en la web y cualquiera de ellos debería funcionar bien. Pude usar mi computadora portátil para escribir la imagen ya que tiene una ranura para tarjeta SD incorporada. Si compra un adaptador, es mejor adquirir uno que admita micro SD directamente, ya que reducirá las posibilidades de que algo salga mal al utilizar otro adaptador.

Escribiendo la imagen

Una vez que la imagen se haya descargado, debería tener un archivo .gz en su carpeta de descargas. Extraiga esto usando la herramienta de su elección (7Zip, WinRAR) y coloque el archivo de imagen (.img) en cualquier lugar que desee, ¡pero recuerde el lugar! A continuación, inicie balenaEtcher usando el ícono del escritorio o del menú de inicio, y debería terminar con una pantalla similar a la siguiente.

La pantalla de inicio inicial de balenaEtcher
La pantalla de inicio de balenaEtcher

Haga clic en el botón «Flash desde archivo» y navegue hasta la ubicación donde se guardó el archivo de imagen extraído. Una vez seleccionado, haga clic en «abrir» para confirmar su selección. A continuación, debería aparecer la siguiente pantalla pidiéndole que elija la ubicación de destino, en este caso, el lector de tarjetas SD.

La pantalla de selección de destino
La pantalla de selección de destino

Haga clic en «Seleccionar destino» y elija el lector de tarjetas SD de la lista. Una vez seleccionado el dispositivo correcto, haga clic en el botón en la parte inferior derecha «Seleccionar (1)» para confirmar su selección. Lo bueno de este software es que ocultará dispositivos que probablemente no sean aquellos en los que desea escribir imágenes, lo que dificultará sobrescribir accidentalmente algo importante. Ejemplos de estos incluyen unidades del sistema y otros tipos de almacenamiento interno que pertenecen a la propia computadora. 

Cuando se realiza la selección del objetivo, debería ver una pantalla similar a la siguiente. ¡El flash!» El botón debe ser azul. Una vez que hayas confirmado que la imagen es correcta y que la tarjeta SD es el dispositivo de destino, presiona el botón «¡Flash!». para comenzar a flashear el dispositivo.

La pantalla flash de balenaEtcher
La pantalla flash, ¡asegúrese de que todas las configuraciones sean correctas!

Ezoico

Después de presionar el botón flash, la pantalla cambiará a una página de estado que muestra con frecuencia el progreso de la operación de escritura. Esto puede llevar un poco de tiempo dependiendo de la velocidad de transferencia de la tarjeta SD y del puerto USB al que esté conectada. Ezoico

La pantalla de estado de escritura
La pantalla de estado: esto podría tardar un poco

Una vez que la barra de progreso llegue a su fin y la pantalla cambie a una pantalla completa, verifique que la tarjeta SD haya sido expulsada correctamente (la mía no). Si no es así, expulse la tarjeta y retírela físicamente de su computadora.

Paso 2: Configurar la red (evitando adaptadores)

Se recomienda configurar la red antes de iniciar el Pi porque lo primero que hará el software será intentar descargar actualizaciones. Otra ventaja de configurar las cosas con anticipación es que una vez encendido, el Pi puede permanecer lejos y toda la configuración se puede realizar de forma remota. Sin embargo, tenga en cuenta que es posible omitir este paso y configurar manualmente la red en el Pi a través de una pantalla y un teclado; aunque no lo detallaremos aquí.

Comience conectando la tarjeta SD a una computadora ( no al Pi). Navegue hasta la unidad como si fuera una unidad flash extraíble. El objetivo es leer la partición de arranque de la tarjeta y no otras, como los archivos de intercambio o del sistema. Sabrás que estás en la partición correcta si la etiqueta del volumen aparece como «hassos-boot» o algo similar. Si se montó la partición incorrecta, busque una guía sobre cómo montar diferentes particiones para su sistema operativo; será diferente para cada una.

En Windows, la partición de arranque es la primera partición, por lo que es la que se monta automáticamente. Una vez que pueda ver el volumen, navegue en el explorador hasta la raíz de la carpeta haciendo clic en él. Deberías ver los archivos de arranque de Pi, como cmdline.txt, config.txt y otros archivos necesarios para arrancar. Si no ve estos archivos, probablemente significa que está montada la partición incorrecta, así que compruébelo primero. De lo contrario, intenta escribir la imagen nuevamente.

Una vez en la carpeta raíz (con config.txt), cree un directorio llamado «CONFIG», luego dentro de ese directorio cree otro llamado «red». Debería terminar con la siguiente estructura de directorios: «CONFIG/network». Dentro de la carpeta de red, cree un archivo llamado «mi-red»; observe la falta de extensión. Para lograr esto en Windows, creé un archivo de texto y le cambié el nombre asegurándome de eliminar la extensión. Es posible que deba habilitar «ver extensiones de archivo» del explorador para hacerlo correctamente.

Ver configuración de extensiones de archivo
Asegúrese de que la configuración «Extensiones de nombre de archivo» esté marcada

Para configurar esa configuración, haga clic en «Ver» en la barra de herramientas del explorador, luego asegúrese de que la casilla de verificación «Extensiones de nombre de archivo» esté marcada. Después de esto, debería poder eliminar la extensión al cambiar el nombre, lo que le permitirá crear un archivo llamado «mi-red».

Configurar el archivo de configuración

Abra el archivo «mi-red» con un editor de texto (en Windows, haga clic derecho->abrir con, seleccione Bloc de notas) y copie y pegue la plantilla a continuación en ese archivo para habilitar las conexiones inalámbricas. Ezoico

[connection]
id=my-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=MY_SSID
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MY_WLAN_SECRET_KEY

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

Lo primero que debe hacer una vez que su archivo se vea como el anterior es dirigirse a uuidgenerator.net y crear un UUID versión 4. Esto reemplazará el valor que está en la plantilla y hará que su conexión sea única. Este valor debe ser único, así que asegúrese de no utilizar el de la plantilla, ya que podría causar problemas. 

Estas configuraciones configurarán el Pi con DHCP, lo que esencialmente significa que el dispositivo tendrá sus configuraciones de red configuradas automáticamente. Es, con diferencia, la forma más sencilla de configurar esto y debería funcionar en la mayoría de las situaciones; sin embargo, si sabe lo que está haciendo y desea configurar una IP estática, consulte la documentación oficial en Github para saber qué opciones deben configurarse. colocar. 

Cambie el SSID para que coincida con su WiFi y establezca el valor «psk» en su contraseña. Si su red WiFi ejecuta configuraciones diferentes, es posible que deba cambiar algunas de las configuraciones de la sección de seguridad inalámbrica, por lo que si no parece conectarse a la red, consulte la documentación de configuración oficial para encontrar todas las opciones disponibles. 

Una vez que todo esté configurado, guarde el archivo, expulse la tarjeta SD y retírela de su computadora.

Paso 3: iniciar el Pi

Comience insertando la tarjeta SD en el Pi, luego conecte los adaptadores que tenga, como los de HDMI y USB, asegurándose de enchufar todo lo que desee usar antes de aplicar energía. Si está conectando un monitor HDMI y un teclado USB usando los adaptadores, podrá ver cómo se realiza la configuración en la pantalla. El teclado no debería ser necesario, pero puede ayudar con la depuración y la configuración de cualquier opción de configuración que haya optado por no realizar anteriormente.

Una vez que todo esté enchufado, conecte el cable de alimentación al Pi y a la pared. Debería ver que un LED en la placa comienza a parpadear una vez que se completa el proceso de inicio. Si no sucede nada, es posible que haya un problema de arranque y la única forma real de solucionarlo es con un monitor y un teclado. Tan pronto como se inicie el Pi, el software comenzará a descargar la última versión de Home Assistant de Internet. 

En este punto, lo único que queda por hacer es esperar a que el sistema se configure solo. Desafortunadamente, si no tiene una pantalla conectada, no hay una buena manera de saber si está funcionando, así que espere unos 10 minutos y luego intente cargar la URL http://homeassistant.local:8123 en su navegador (en cualquier dispositivo conectado al WiFi, no al Pi).

Tenga en cuenta que si su enrutador no admite mDNS, este enlace no funcionará. Si su enrutador no admite mDNS, deberá visitar la interfaz de administración de su enrutador para descubrir cuál es la dirección IP del Pi. Debería poder encontrarlo en una lista de «Arrendamientos de DHCP» o un menú similar a ese. El enlace será el mismo que antes pero con la IP del Pi en lugar de «homeassistant.local».

Una vez que se carga la página, ¡listo! Home Assistant ya está instalado y listo para configurarse con todos sus dispositivos inteligentes. Si tienes problemas, lo mejor que puedes hacer es conectar un teclado y un monitor al Pi para ver qué está pasando. Sin embargo, esto requiere adaptadores, así que mientras tanto intente verificar que la configuración de la red sea correcta, que el dispositivo esté encendido adecuadamente y que se pueda acceder a la red WiFi.Ezoico

El Pi Zero con todos los adaptadores necesarios conectados
El Pi Zero con todos los adaptadores conectados

Elementos opcionales

Cuando complete el proceso de incorporación que se carga cuando visita el panel de control por primera vez, quedará con la página principal de Home Assistant donde se pueden administrar todas las entidades configuradas. Visitar la pestaña «Supervisor» le permitirá ver la «Tienda de complementos». Esta tienda es donde es posible instalar todo tipo de componentes de software opcionales.

Los usuarios avanzados querrán instalar el servidor SSH como mínimo, esto permitirá el acceso remoto al terminal sin tener que volver al dispositivo. No dudes en echar un vistazo y ver si algo en la página de complementos te interesa. Tenga en cuenta que cada complemento tendrá un impacto en el rendimiento del Pi, así que manténgalos al mínimo para garantizar la estabilidad.

¿Deberías utilizar Pi Zero para Home Assistant?

Ahora vimos que es más que posible instalar Home Assistant en una Raspberry Pi Zero W, pero como muchas cosas, el hecho de que podamos, no significa que debamos hacerlo. De hecho, la documentación oficial del sistema operativo Home Assistant dice que el Pi Zero no se recomienda para nada excepto para realizar pruebas. ¿Tiene algún sentido usarlo entonces?

Resulta que hay algunos casos de uso que pueden beneficiarse de esta configuración. Para instalaciones muy ligeras que implican sólo unas pocas luces e interruptores, Zero podrá proporcionar un rendimiento más que suficiente para satisfacer los requisitos del software. Encender o apagar dispositivos e incluso monitorear el estado de varios sensores no requiere cantidades excesivas de potencia de procesamiento, pero los complementos son donde el Pi Zero realmente comienza a tener problemas.

El Zero es un dispositivo pequeño y su procesador es mínimo. Como tal, debes olvidarte de hacer cualquier cosa como el procesamiento de imágenes o incluso la transmisión de música. El Pi de tamaño completo ya tiene algunos problemas con Home Assistant , y dado que el Zero es obviamente menos potente, no sorprende que algunas cargas de trabajo puedan presentar un problema para esta configuración.

Otra área donde el Zero sufre un rendimiento inferior al ideal es en el inicio inicial de Home Assistant. A menudo llevará mucho tiempo inicializar todo lo necesario para funcionar. Esto empeorará mucho con el tiempo y con la instalación de integraciones que deben iniciarse individualmente cuando se inicia HASS. Afortunadamente, la startup parece ser uno de los únicos lugares afectados desde el primer momento, una vez iniciado, las cosas van aceptablemente rápido.

En resumen, el Zero es adecuado para instalaciones sencillas que sólo controlarán un puñado de dispositivos básicos. De hecho, funciona bastante bien para este fin a pesar de no estar recomendado para ninguna situación. Sin embargo, si está buscando ejecutar algún tipo de complemento, es probable que el Zero no sea suficiente y necesitará un Pi de tamaño completo como el 4 como mínimo. 

Instalar un servidor IOT en un PC


Para montar un servidor IoT en un PC, primero necesitamos un PC con los requisitos mínimos necesarios. Estos requisitos suelen ser los siguientes:

  • Un procesador de al menos 1 GHz
  • 2 GB de RAM
  • 10 GB de espacio libre en disco duro
  • Un sistema operativo compatible con IoT, como Windows 10, Linux o macOS

Una vez que tenga un PC compatible, puedes empezar a instalar el software necesario. Hay muchas opciones disponibles, pero algunas de las más populares son:

  1. Apache MQTT es un servidor MQTT que facilita la comunicación entre dispositivos IoT de manera eficiente y ligera. MQTT es reconocido por su bajo consumo de ancho de banda y su capacidad para funcionar en redes con recursos limitados, lo que lo convierte en una opción popular para la comunicación en entornos IoT. Al utilizar un modelo de publicación/suscripción, MQTT permite que los dispositivos envíen y reciban mensajes de manera eficiente, lo que lo hace ideal para aplicaciones donde se requiere un intercambio rápido de datos entre múltiples dispositivos.
  2. Node-RED proporciona un entorno de desarrollo visual para la creación de aplicaciones IoT basadas en JavaScript. Con una interfaz gráfica intuitiva, Node-RED permite a los desarrolladores crear flujos de trabajo complejos al conectar nodos predefinidos. Estos nodos pueden realizar una variedad de tareas, como la integración con dispositivos y servicios IoT, el procesamiento de datos y la generación de respuestas automatizadas. Al simplificar el proceso de desarrollo, Node-RED agiliza la creación de aplicaciones IoT y facilita la implementación de soluciones inteligentes y conectadas.
  3. ThingSpeak es una plataforma en la nube diseñada para la recopilación, el almacenamiento y la visualización de datos de dispositivos IoT. Ofrece herramientas para la integración de dispositivos y la recopilación de datos en tiempo real, así como para el análisis y la visualización de datos a través de gráficos y tablas. ThingSpeak también permite la creación de paneles personalizados para monitorizar y controlar dispositivos IoT, lo que facilita la creación de soluciones personalizadas para diferentes aplicaciones y casos de uso.
  4. HomeAssistant es una plataforma IoT de código abierto ampliamente utilizada que se puede instalar en una variedad de dispositivos, como Raspberry Pi o servidores domésticos. Ofrece una interfaz centralizada para controlar y automatizar dispositivos IoT de diferentes fabricantes y protocolos. HomeAssistant es altamente personalizable y extensible, lo que permite a los usuarios integrar una amplia gama de dispositivos y servicios en una sola plataforma. Con funciones avanzadas de automatización y soporte para la creación de reglas personalizadas, HomeAssistant es una opción popular para aquellos que desean crear un hogar inteligente personalizado y flexible.

Apache MQTT

Apache MQTT: Un servidor MQTT, que es un protocolo de mensajería ligero utilizado para la comunicación entre dispositivos IoT.

Para instalar Apache MQTT, puede seguir estos pasos:

  1. Abra un símbolo del sistema o una terminal.
  2. Escriba el siguiente comando:
sudo apt-get install mosquitto
  1. Presione Enter.

Esto instalará el servidor MQTT en tu PC. Para comprobar que está instalado correctamente, puede escribir el siguiente comando:

sudo service mosquitto status

Si el servidor está instalado correctamente, verá el siguiente mensaje:

mosquitto.service - Mosquitto MQTT v3.1.1 message broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2023-12-30 12:00:00 CET; 10h ago
  Main PID: 1336 (mosquitto)
  Tasks: 2 (limit: 2349)
  Memory: 1.8M
  CGroup: /system.slice/mosquitto.service

Node-RED

Node-RED: Un entorno de desarrollo visual para crear aplicaciones IoT basadas en JavaScript.

Para instalar Node-RED, puede seguir estos pasos:

  1. Abra un símbolo del sistema o una terminal.
  2. Escriba el siguiente comando:
npm install -g node-red
  1. Presione Enter.

Esto instalará Node-RED en tu PC. Para comprobar que está instalado correctamente, puede escribir el siguiente comando:

node-red

Esto abrirá Node-RED en su navegador web.

ThingSpeak

ThingSpeak: Una plataforma en la nube que permite recopilar, almacenar y visualizar datos de dispositivos IoT.

Para instalar ThingSpeak, puedes seguir estos pasos:

  1. Vaya al sitio web de ThingSpeak.
  2. Haga clic en «Create Account».
  3. Introduzca su información de contacto y cree una contraseña.
  4. Haga clic en «Create Account».

Una vez que haya creado una cuenta, puede empezar a crear canales para recopilar y almacenar datos de sus dispositivos IoT.

Una vez que haya instalado el software necesario, puede empezar a conectar sus dispositivos IoT a tu servidor. La forma de hacerlo dependerá del tipo de dispositivo que esté utilizando.

Por ejemplo, si está utilizando un dispositivo que utiliza el protocolo MQTT, puede conectarlo a su servidor utilizando el siguiente comando:

mosquitto_sub -h localhost -t topic

Este comando suscribirá tu dispositivo al tema «topic».

Una vez que tus dispositivos estén conectados a tu servidor, podrás empezar a recopilar datos de ellos. Puedes hacerlo utilizando el software que hayas instalado anteriormente.

Por ejemplo, si está utilizando Node-RED, puede crear un flujo para recopilar datos de sus dispositivos. El siguiente flujo recopilará datos de un dispositivo que utiliza el protocolo MQTT:

[{"id":"in1","type":"mqtt in","topic":"topic","broker":"localhost"}]

Este flujo creará una entrada llamada «in1» que recibirá datos del tema «topic» del broker MQTT local.

home assistant

Home Assistant

HomeAssistant: Una plataforma IoT de código abierto ampliamente utilizada que se puede instalar en una gran variedad de dispositivos.

Home Assistant es un software de automatización del hogar gratuito y de código abierto que te permite gestionar todos tus dispositivos inteligentes desde un único lugar.También es posible instalar Home Assistant en tu PC.

Para instalar Home Assistant en un PC , puede seguir estos pasos:

  1. Descarga la última versión de Home Assistant desde la página web oficial.Se abre en una ventana nuevawww.home-assistant.ioPágina web oficial de Home Assistant
  2. Descomprime el archivo descargado.
  3. Abre un símbolo del sistema o una terminal en la carpeta descomprimida.
  4. Escribe el siguiente comando:
hass
  1. Presiona Enter.

Esto iniciará Home Assistant. El servidor se iniciará en la dirección http://localhost:8123/.

Una vez que haya iniciado Home Assistant, puede empezar a agregar dispositivos a su sistema. Puede hacerlo utilizando la interfaz web de Home Assistant o mediante la API de Home Assistant.

Para agregar dispositivos a tu sistema utilizando la interfaz web, haz clic en el icono «+» en la esquina superior izquierda de la pantalla. A continuación, seleccione el tipo de dispositivo que deseas agregar.

Para agregar dispositivos a tu sistema mediante la API de Home Assistant, puede utilizar un lenguaje de programación como Python o JavaScript.

Aquí hay algunos ejemplos de lo que puedes hacer con Home Assistant:

  • Controlar tus luces, termostatos y otros dispositivos inteligentes.
  • Automatizar tareas, como encender las luces cuando llegues a casa o apagarlas cuando te vayas.
  • Recibir notificaciones sobre el estado de tus dispositivos.

Home Assistant es una excelente manera de controlar sus dispositivos inteligentes y automatizar su hogar.

Resumen

La elección de la herramienta adecuada depende de sus necesidades específicas y de los requisitos de su proyecto. Aquí hay algunos factores a considerar al tomar una decisión:

  1. Requerimientos del proyecto: Evalúe qué funcionalidades necesita en su solución IoT. ¿Necesita un servidor de mensajería para la comunicación entre dispositivos? ¿Quiere una plataforma para visualizar y analizar datos de IoT? ¿Busca una herramienta para desarrollar aplicaciones IoT de manera rápida y eficiente?
  2. Facilidad de uso: Considere la facilidad de uso y la curva de aprendizaje de cada herramienta. Algunas plataformas pueden ser más amigables para principiantes o ofrecer una interfaz visual intuitiva, mientras que otras pueden requerir un conocimiento más profundo de programación.
  3. Flexibilidad y escalabilidad: Piense en la flexibilidad y la escalabilidad de la herramienta. ¿Puede integrar una amplia gama de dispositivos y servicios? ¿La herramienta puede escalar fácilmente a medida que crece tu proyecto IoT?
  4. Comunidad y soporte: Investige la comunidad de usuarios y el soporte disponible para cada herramienta. Una comunidad activa puede proporcionar recursos, tutoriales y soluciones a problemas comunes, mientras que un buen soporte técnico puede ayudarle a resolver problemas específicos.
  5. Costo: Considere el costo asociado con cada herramienta, incluyendo posibles tarifas de licencia, costos de infraestructura, y gastos de mantenimiento. Algunas herramientas pueden ser de código abierto y gratuitas, mientras que otras pueden requerir una inversión inicial o pagos periódicos.

Analize estos factores y elija la herramienta que mejor se adapte a tus necesidades y objetivos de proyecto. Una vez que hayas recopilado los datos de tus dispositivos, puedes almacenarlos, analizarlos o utilizarlos para automatizar tareas.

Aquí tiene algunos ejemplos de lo que puede hacer con un servidor IoT:

  • Monitorear el estado de tus dispositivos IoT.
  • Recopilar datos para fines de análisis.
  • Automatizar tareas, como encender o apagar luces o abrir puertas.
  • Etc

El potencial de los servidores IoT es enorme. Con un poco de esfuerzo, puede crear aplicaciones IoT que le ayuden a mejorar su vida.