Hallo
verschiedene Gründe haben mich dazu gebracht von homegear mit einem raspi 2, Stretch, ro filesystem auf einen raspi 3b+, buster und ssd umzusteigen. auch wollte ich jetzt docker nutzen.
Als homematic bidcos interface nutze ich den SCC - Stackable CC1101.
Die wichtigsten apps
- homegear (stable)
- eclipse mosquitto
docker Installation
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker pi
homegear Installation
Im Wesentlichen folgte ich der Beschreibung: Docker Hub
wenn man genau liest steht auch alles Wichtige dort beschrieben.
Da ich nur mit dem user pi arbeite und nicht permanent als user root arbeiten möchte ein paar Änderungen:
Das Anlegen der Directories für homegear:
sudo mkdir -p /homegear-data/etc
sudo mkdir /homegear-data/lib
sudo mkdir /homegear-data/log
Docker Netzwerk für die Kommunikation zwischen homegear und mosquitto:
docker network create \
--driver bridge \
home-net
Der Vorteil eines eigenen docker Netzwerkes anstelle des default Netzwerkes besteht darin, dass die docker Container mit Namen untereinander kommunizieren können und keine IP’s angegeben werden müssen. (Networking with standalone containers | Docker Documentation)
Starten von homegear:
docker run -d \
--restart always \
-v /homegear-data/etc:/etc/homegear:Z \
-v /homegear-data/lib:/var/lib/homegear:Z \
-v /homegear-data/log:/var/log/homegear:Z \
-v /sys:/sys \
-e TZ=Europe/Berlin -e HOST_USER_ID=$(id -u) \
-e HOST_USER_GID=$(id -g) \
-p 2001:2001 \
-p 2002:2002 \
-p 2003:2003 \
--device=/dev/ttyAMA0 \
--name homegear \
--hostname homegear \
--network home-net \
homegear/homegear:stable
Zur Erklärung - angepasst nach Kommentaren siehe unten:
-
--restart always
erlaub das starten beim hochfahren des Raspi. -
-v /sys:/sys
ist notwendig um die GPIO pins aus dem docker container anzusprechen (SCC Modul) -
--hostname homegear
setzt den intern verwendeten hostname der docker Instanz (nicht zwingend notwendig - mach die instanz lesbarer) -
--name homegear
damit kann die docker Instanz mit einem Namen von anderen Instanzen aus adressiert werden (vom mosquitto container aus: ping homegear) -
--network home-net
hinzufügen zu einem Netzwerk -
--rm
würde den Container nach Beendigung löschen. Möchte ich aber nicht.
Starten von eclipse-mosquitto:
Für Interessierte. Durch das eigene Netzwerk, kann jetzt aus dem homegear container der mosquitto container mit dem Namen mosquito
addressiert werden. Interessant für flows und mqtt Konfigurationen.
docker run -d \
--restart always \
-p 1883:1883 \
-p 8883:8883 \
-v /mosquitto-data/config:/mosquitto/config \
-v /mosquitto-data/log:/mosquitto/log \
-v /mosquitto-data/data:/mosquitto/data \
--hostname mosquitto \
--name mosquitto \
--network home-net \
eclipse-mosquitto
vielen Dank für die Hilfe des Forums