HomeAssistant Installation
Bind Mount für Config-Ordner, damit die Config außerhalb des Containers gespeichert wird. HomeAssistant wird grundsätzlich nur über Dateien konfiguriert. Messwerte werden standardmäßig in einer lokalen SQLite-Datenbank gespeichert, also im Dateisystem.
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
ports:
- 8123:8123
Setup mit MariaDB
Echte MySQL-Datenbank zur Speicherung der Messwerte. Sinnvoll für langfristigere Speicherung (trotzdem nicht für Langzeitarchivierung geeignet!)
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
ports:
- 8123:8123
depends_on:
- mariadb
mariadb:
image: mariadb
container_name: mariadb
restart: unless-stopped
volumes:
- mariadbx:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
MYSQL_DATABASE: "${MYSQL_DATABASE}"
MYSQL_USER: "${MYSQL_USER}"
MYSQL_PASSWORD: "${MYSQL_PASSWORD}"
PUID: 1000
PGID: 1000
# phpMyAdmin zur Verwaltung der Datenbank
# phpmyadmin:
# image: phpmyadmin
# restart: unless-stopped
# environment:
# PMA_HOST: mariadb
# ports:
# - 8080:80
volumes:
mariadbx:
Datei .env für Umgebungsvariablen
MYSQL_ROOT_PASSWORD=ROOTPW
MYSQL_DATABASE=homeassistant
MYSQL_USER=homeassistant
MYSQL_PASSWORD=MYUSERPW
einfügen in secrets.yaml von HA:
mariadb_url: mysql://root:ROOTPW@mariadb/homeassistant?charset=utf8
einfügen in configuration.yaml von HA:
recorder:
db_url: !secret mariadb_url
purge_keep_days: 365
commit_interval: 0
Dann wird die MariaDB genutzt, um Messwerte zu speichern. Messwerte werden 365 Tage aufbewahrt.
Zigbee-Stick oder andere USB-Geräte
USB-Geräte, die am Hostystem angeschlossen sind, z. B. ein Zigbee-Stick, sind nicht direkt im Docker-Container verfügbar.
Man muss in der docker-compose.yml explizit auswählen, welche Geräte für den Container bereitgestellt werden.
Unter Linux sind alle Geräte als Dateien unter /dev abgebildet.
Mit ls /dev auflisten, welche Geräte es gibt. Dann Stick einstecken und wieder auflisten. Durch den Unterschied kann man das Gerät finden.
Unter devices in der Compose-Config kann man dann dieses Gerät verfügbar machen:
services:
homeassistant:
container_name: homeassistant
# ...
devices:
- /dev/ttyACM0
Danach kann man in HomeAssistant die Integration “Zigbee Home Automation” verwenden.