viernes, 7 de enero de 2022

ESPHome: Instalación de Home Assistant en Raspberry Pi 3

En la página web de instalación de Home Assistant podrás ver que existen varios métodos de instalarlo en una raspberry pi. En este artículo voy a realizar la instalación utilizando Home Assistant Operating System


Esta versión dispone de todas las funcionalidades de Home Assistant tal y como se indica en la página de instalación general.


Importante, si optamos por esta opción no podremos utilizar nuestra raspberry pi para otro cometido que no sea el de ejecutar Home Assistant. Si deseas utilizarlo también para otras cosas mejor realizar la instalación con Docker y emplear al menos una raspberry pi 4 con 4 GB de RAM.

Nota: Para las pruebas que voy a realizar estoy utilizando el sistema mínimo recomendable, que es una raspberry pi 3 con una tarjeta de memoria. Si continuo con este mundillo de la domótica tendré que utilizar como mínimo una raspberry pi 4 con 4/8 GB de RAM con un disco SSD o un PC tipo NUC con esa capacidad de RAM y el mismo tipo de disco duro, pero eso lo dejaré para más adelante si realmente lo veo necesario.

Lo primero que tengo que hacer es preparar nuestra memoria SD que ha de ser como mínimo de clase 2 y 32GB de capacidad. Para ello voy a seguir los pasos que indica la web y voy a descargar el software balenaEtcher.

Una vez descargado e instalado (también puedes bajar la versión portable y ahorrarte dicha instalación) ejecuto el programa y selecciono Flash from URL. La url dependerá del tipo de raspberry pi que tienes (en mi caso una raspberry pi 3) y recomienda la versión de 64 bits:

https://github.com/home-assistant/operating-system/releases/download/7.0/haos_rpi3-64-7.0.img.xz


Descargada la imagen del SO, seleccionamos la memoria SD (Select target) y por último hacemos click en Flash!

Una vez haya finalizado la carga del SO en la tarjeta, vamos a necesitar realizar una serie de configuraciones en Home Assistant y lo primero será configurar una IP fija para poder acceder remotamente. Para ello podemos utilizar tres métodos:

Utilizando una memoria USB externa

Aunque parezca un método un poco extraño, la verdad es que nos puede ser útil en ciertas ocasiones. Para ello debemos de disponer de una memoria USB (recomiendo alguna de muy poca capacidad) que debemos formatear en FAT 32 y la denominaremos CONFIG en mayúsculas.

A continuación, accedemos a la memoria USB y creamos una carpeta denominada network (en minúsculas). Ahora, dentro de esta carpeta, creamos un archivo de texto que denominaremos my-network.txt

Abrimos este archivo (con el bloc de notas por ejemplo) y escribimos en él lo siguiente (en el caso de que la raspberry se conecte por WiFi con encriptación WPA/PSK):

[connection]
id=my-network
uuid=47a56c60-09d7-45d8-831b-c6f7fb16a076
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=MY_SSID

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

[ipv4]
method=manual
address=192.168.1.210/24;192.168.1.1
dns=8.8.8.8;8.8.4.4

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

  • 192.168.1.98 es la dirección IP LAN fija que vamos a asignar a nuestra raspberry. Puedes cambiar el último número por el que quieras fuera del rango de la configuración DHCP de tu router.
  • 192.168.1.1 es la IP LAN del router, llamada también puerta de enlace. Básicamente, es la IP a la que la raspberry pi y cualquier otro dispositivo conectado a nuestra LAN va a enviar los paquetes cuando quiere comunicarse fuera de nuestra LAN
  • 8.8.8.8 y 8.8.4.4 son las direcciones IP de los DNS, que son los servidores que convierten las urls del tipo https://google.es en una dirección IP real. Puedes utilizar éstas direcciones (que son los servidores DNS de google) o los servidores DNS que utiliza tu operador.
  • He dejado para el final el uuid. Para ello debemos ir a la web uuidgenerator.net, hacer click en Generate a version 4 UUID y copiar el churro que nos aparece en la parte superior de la pantalla. En este caso se ha generado 47a56c60-09d7-45d8-831b-c6f7fb16a076


Si vas a conectar ty raspberry pi a través de un cable ethernet tendrás que copiar la siguiente configuración:

[connection]
id=my-network

uuid=47a56c60-09d7-45d8-831b-c6f7fb16a076
type=802-3-ethernet
llmnr=2
mdns=2

[ipv4]
method=manual
address=192.168.1.210/24;192.168.1.1
dns=8.8.8.8;8.8.4.4

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

Estas configuraciones las he obtenido del siguiente enlace.

A continuación guarda el archivo y edita su nombre eliminando la extensión .txt

Si no ves la extensión del archivo asegúrate que en el explorador de Windows, en el menú vista, tiene marcada la opción Extensiones de nombre de archivo.

Ahora, tan solo tienes que conectar la memoria USB en un puerto USB de nuestra raspberry, insertar la tarjeta microSD con el SO, conectar la raspberry al router a través de un cable ethernet o a través del wifi y listo, tu raspberry tendrá la IP fija que hayas seleccionado y se estará instalado Home Assistant.

El inconveniente de este método es que siempre deberás tener conectada la memoria USB a la raspberry pi y eso es un incordio. Lo explico porque fue el método que utilicé inicialmente antes de conocer que se podía hacer creando una carpeta en el directorio raíz.

Creando una carpeta en el directorio raíz

Para ello has de crear exactamente el mismo fichero en la misma carpeta pero, en vez de guardarlo en una memoria externa, lo que has de hacer es copiarla en el directorio raíz de la tarjeta microSD. Para ello introduce la memoria en un lector y copiaremos el archivo en la ruta que nos crearemos en la raíz de la SD: CONFIG/network/my-network.


Como en el método anterior, cuando conectes tu raspberry pi siempre tendrá la misma dirección IP y podrás acceder remotamente sin problemas.

Listo, ya puedes insertar la tarjeta de memoria en tu raspberry pi y alimentarla para que se complete la instalación de Home Assistant.


No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.