Hoy vamos a ver cómo podemos instalar Home Assistant en una Raspberry Pi y usando Docker.
Lo primero que tenemos que tener listo es la instalación de Docker en nuestra Raspberry Pi: https://devcodelight.com/desplegar-servidor-web-apache-con-docker-compose/
Vamos a utilizar esta estructura:
Una vez instalado, tendremos que crear esta configuración de Docker Compose.
docker-compose.yml
version: '3' services: homeassistant: container_name: homeassistant image: homeassistant/home-assistant volumes: - ./config/hass_config:/config - /etc/localtime:/etc/localtime:ro restart: unless-stopped ports: - "8123:8123" depends_on: - mariadb_home_assistant - mosquitto networks: - docker-network mariadb_home_assistant: image: mariadb container_name: mariadb_home_assistant restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: "MYSQL_ROOT_PASSWORD" MYSQL_DATABASE: ha_db MYSQL_USER: homeassistant MYSQL_PASSWORD: "MYSQL_PASSWORD" volumes: - ./config/mariadb:/config ports: - "3306:3306" networks: - docker-network nodered: container_name: nodered image: nodered/node-red ports: - "1880:1880" volumes: - ./config/nodered:/data depends_on: - homeassistant - mosquitto environment: TZ: "Europe/Madrid" restart: unless-stopped networks: - docker-network mosquitto: image: eclipse-mosquitto container_name: mosquitto_z restart: unless-stopped ports: - "1883:1883" volumes: - "./config/mosquitto/config:/mosquitto/config" - "./config/mosquitto/data:/mosquitto/data" - "./config/mosquitto/log:/mosquitto/log" environment: - TZ=Europe/Madrid user: "${PUID}:${PGID}" networks: - docker-network hass-configurator: image: "causticlab/hass-configurator-docker:arm" container_name: hass-configurator restart: unless-stopped ports: - "3218:3218/tcp" depends_on: - homeassistant volumes: - "./config/configurator:/config" - "./config/hass_config:/hass-config" user: "${PUID}:${PGID}" networks: - docker-network networks: docker-network: driver: bridge external: true
Elegiremos el password que queremos establecer en root_password / db_user_password
Ahora creamos el archivo config/configurator/settings.conf
{ "BASEPATH": "../hass_config" }
Ahora creamos el archivo config/hass_config/configuration.yalm
Modificamos <host_ip> por la ip de la Raspberry en nuestra red interna.
default_config: http: use_x_forwarded_for: false panel_iframe: configurator: title: Configurator icon: mdi:wrench url: http://<host_ip>:3218/ require_admin: true nodered: title: Node-Red icon: mdi:shuffle-variant url: http://<host_ip>:1880/ require_admin: true recorder: db_url: mysql://homeassistant:<MYSQL_PASSWORD>@mariadb_home_assistant/ha_db?charset=utf8 purge_keep_days: 30
Modificamos MYSQL_PASSWORD por el valor que le dimos en la variable .env anterior.
Este archivo de configuración, contendrá todo el panel de nuestro Home Assistant y se irá modificando.
Más info: https://www.danielmartingonzalez.com/es/configuracion-de-home-assistant-en-yaml/
Ahora creamos el archivo config/mosquitto/config/mosquitto.conf
persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log listener 1883 allow_anonymous true
Crearemos este .gitignore si utilizamos Git para almacenar el código:
config/configurator/* config/homeassistant/* config/mariadb/* config/mosquitto/* config/nodered/*
*Hay que crearlo después de subir los archivos de configuraciones para que no se pierdan datos.
Ahora vamos a desplegar el docker compose con este comando:
docker compose up -d
Para acceder a Node-RED:
http://ip_raspberry:1880
Acceder al configurador de Home ASSISTANT
http://localhost:3218/
Para acceder a Home ASSISTANT
http://localhost:8123
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.