Raspberrymatic CCU Docker Installation

Warum sollte man Raspberrymatic als Docker Container laufen lassen? Ich hatte vor kurzem ein Projekt bei dem ich 4 Raspberry Pi´s in ein Gehäuse gebaut habe und jeden einzelnen Raspberry mit einem System Monitor (0,96″ OLED Display) ausstatten wollte. Auf einem Raspberry war RaspberryPi OS installiert somit kein Problem, auf dem zweiten openhabian das ja auch auf RaspberryPi OS aufbaut somit auch kein Problem, beim dritten lief HASSIO bei dem es nicht möglich war das OLED Display anzusteuern und auf dem vierten lief Raspberrymatic als Standalone wo das Ansprechen bzw. eine weitere Konfiguration auch nicht möglich war. Das war der Grund warum ich mich jetzt für eine Docker Installation von Raspberrymatic entschieden habe.

Vom Verhalten bzw. von der Leistung merke ich keinen Unterschied. Leider war das einspielen eines Backups von der Standalone Lösung nicht möglich bzw. es hat zwar funktioniert aber die Steuerung war sehr träge und somit nicht zu gebrauchen. Eigentlich auch verständlich da die Systeme grundsätzlich unterschiedlich arbeiten. So nun zu Installation.

Natürlich benötigt Ihr Docker um hier Raspberrymatic im Container zu starten. Wie Ihr Docker installiert habe ich schon in einem anderen Beitrag behandelt.

1. Docker Benutzer hinzufügen:

Evtl. müsst Ihr dann noch euren Benutzer den Ihr auf dem Raspberry nutzt zur Docker Gruppe hinzufügen.

sudo usermod -aG docker $USER

Hier einfach das $USER mit euren Benutzer austauschen.

2. piVCCU installieren:

piVCCU ist ein Projekt mit dem die original Homematic CCU3 Firmware auf z.b. Raspberry Pi´s installiert werden kann. Diese Kernel Module pivccu-modules-dkms könnt Ihr mit diesen Befehlen installieren.

sudo apt install wget ca-certificates
wget -q -O - https://www.pivccu.de/piVCCU/public.key | sudo apt-key add -
sudo sh -c 'echo "deb https://www.pivccu.de/piVCCU stable main" >/etc/apt/sources.list.d/pivccu.list'
sudo apt update
sudo apt install build-essential bison flex libssl-dev
sudo apt install pivccu-modules-dkms

3. Falls Ihr GPIO Homematic Module benutzt:

Wenn Ihr den Raspberry Pi mit dem RPI-RF-MOD/HM-MOD-RPI-PCB über die GPIO´s benutzt müsst Ihr noch weitere Skripte installieren. Falls Ihr USB Sticks (HB-RF-USB, HB-RF-USB-2, HB-RF-ETH) benutzt benötigt Ihr diese Schritte nicht und könnt mit Schritt 4. fortfahren.

sudo apt install pivccu-modules-raspberrypi

3.1 Bluetooth ausschalten:

sudo bash -c 'cat <<EOT >>/boot/config.txt
dtoverlay=pi3-disable-bt
EOT'
sudo systemctl disable hciuart.service

3.2 Serielle Konsole ausschalten:

sudo sed -i /boot/cmdline.txt -e "s/console=serial0,[0-9]\+ //"
sudo sed -i /boot/cmdline.txt -e "s/console=ttyAMA0,[0-9]\+ //"

4. Kernel Modul ep3_char_loop installieren:

sudo sh -c 'echo eq3_char_loop >/etc/modules-load.d/eq3_char_loop.conf'

5. Dann laden und starten wir alle benötigten Kernel mit:

sudo service pivccu-dkms start
sudo modprobe eq3_char_loop

6. Docker Compose Datei erstellen:

Nun könnt Ihr schon eine docker-compose.yml Datei erstellen. Ich speichere diese .yml Datei in /home/pi/docker-compose/raspberrymatic ab.

version: "3.8"
services:
  raspberrymatic:
    image: ghcr.io/jens-maus/raspberrymatic:latest
    container_name: ccu
    hostname: homematic-raspi
    privileged: true
    restart: unless-stopped
    stop_grace_period: 30s
    volumes:
      - ccu_data:/usr/local:rw
      - /lib/modules:/lib/modules:ro
      - /run/udev/control:/run/udev/control
    ports:
      - "8080:80"
      - "2001:2001"
      - "2010:2010"
      - "9292:9292"
      - "8181:8181"
volumes:
  ccu_data:

Dann geht ihr mit cd /home/pi/docker-compose/raspberrymatic in das Verzeichnis und startet diesen Container mit:

Beim ersten Start kann das schon eine Weile dauern je nach Internet Verbindung, da die Dateien erst runtergeladen werden müssen.

#ohne Logfile
docker-compose up -d
#mit Logfile
docker-compose up

Bei einem erfolgreichen Start des Containers/Skript bekommt Ihr eine Statusanzeige (#mit Logfile) wie diese ausgegeben:

7. Homematic CCU aufrufen:

Um jetzt die CCU im Browser aufzurufen gebt Ihr http://eureIPAdresse:8080 ein und werden dann mit der Erstkonfiguration bzw. dem Willkommens Screen begrüßt. Nun habt Ihr Raspberrymatic/CCU3 auf einem Raspberry Pi mittels eines Docker Container installiert. Ihr könnt diesen Container natürlich nach belieben updaten, stoppen, starten, löschen, etc.

6 Gedanken zu “Raspberrymatic CCU Docker Installation

  1. Danke für die Anleitung – war erfolgreich und es läuft.
    Habe es zuerst nach der Anleitung von Stefan vom http://www.verdrahtet.info installiert. Er verweist seinerseits auf alexreinert vom https://github.com/alexreinert/piVCCU/blob/master/docs/setup/raspberrypi.md. Da hatte ich Probleme, dass ich die IP-Adresse vom Homematic nicht gefunden habe. Wieso habe ich nicht herausgefunden.
    Ich wollte es aber auf einem Raspberry Pi 4 mit externer USB SSD Boot und Docker laufen haben (nicht mit IOBroker). Arbeite viel mit Node-Red, Mosquitto, influxdb und Grafana. Portainer hilft managen.
    Nach dem Suchen einer Lösung im Internet habe ich Deine Seite gefunden. Nach der Installation konnte ich erfolgreich Homematic bzw. RaspberryMatic aufstarten. Besten Dank

    1. Servus Bruno, Danke für die Infos, das freut mich dass es geklappt hat. Bin gerade am Aufbau eines Clusters da dachte ich mir da könnt ich doch alles ein bisschen dokumentieren;-)
      weiterhin viel Erfolg und beste Grüße!

  2. Servus, ich versteh grad nicht genau warum erst pivccu von Alex Reinert und dann raspberrymatic von Jens Maus installiert wird. Sprich ab Schritt 6 dann Raspberrymatic, davor war es pivccu.
    Könntest du das evtl. nochmals darstellen?
    Ich bin auch grad auf der Suche nach dem Optimum für mich. Derzeit betreibe ich recht stabil die pivccu3 auf nem Rpi4. Da demnächst ne SSD an die Rpi kommt, wollte ich auf Docker umsteigen und alle Apps (IOBroker, Grafana, Influx, Homematic) via Docker managen (Visualisierung via Portainer). Ich steh quasi jetzt am Punkt, welche Homematic Version am besten via Docker zu managen ist wenn ein HB-RF-USB verwendet wird.
    meric dir

      1. Danke dir, jetzt hab Ichs verstanden. Wenn die USB-Variante, dann die PIVCCU Treiber. Super, probier ich aus. Auch dank deines Videos zum Argon one M.2 und der SSD designe ich meinen Pi grad neu und versuche mal den Ansatz alles in Container zu packen.

  3. Vielen Dank für die Anleitung, funktioniert grandios!
    Zwei kleine Anmerkungen:
    1) Bei mir hat es ganz am Schluss noch einen restart des Systems gebraucht bevor raspberrymatic auf das Funkmodul zugreifen konnte.
    2): Falls jemand wie ich einen HmIP-HAP als LAN-Router verbinden möchte (siehe https://technikkram.net/blog/2020/09/27/homematic-ip-access-point-als-lan-router-auf-ccu3-installieren-und-anlernen/): Man muss mehr Ports in der docker-compose.yml freigeben. Ausreichend sind neben 8080:80 noch das direkte forwarden von 443, 1999-2001, 2010, 8181, 9292, 32001,32010,41999-42001,42010,48181. Welche davon alle tatsächlich nötig sind, hab ich nicht ausprobiert, aber auf diese greift der AccessPoint + RaspberryMatic zu. Es kann sein, dass er zum erstmaligen pairen noch mehr braucht, dafür hatte ich statt der einzelnen Port-Weiterleitungen schlicht network_mode: “host” aktiviert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.