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.