[GELÖST] RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

tomo_2403
Beiträge: 23
Registriert: 03.12.2022, 16:43
System: CCU
Hat sich bedankt: 1 Mal

[GELÖST] RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von tomo_2403 » 31.01.2023, 16:08

Moin,

ich bin nun von meiner normalen RaspberryMatic auf eine virtuelle Umgebung in Docker umgestiegen. Alles läuft nach wie vor auf einem Raspi 3B+ mit dem HM-MOD-RPI-PCB Funkmodul. Das ist mit den richtigen GPIO-Pins direkt mit dem Pi verbunden. Für die installation habe ich diese Anleitung von GitHub befolgt. Dort hab ich mich dann auch für docker compose entschieden.

Die Installation ist soweit geglückt, allerdings wird das Funkmodul nicht mehr erkannt. Zu erst hatte ich gedacht, dass das gleiche Problem aus Dezember 2022 wieder anwesend wäre. Allerdings wird das Funkmodul unter einer direkten Installation von RaspberryMatic auf einem andern Pi ganz normal erkannt und ein anderes Funkmodul, welches auch funktioniert, wird in der virtuellen Umgebung nicht erkannt. Das mache ich daran fest, keine Geräte mehr steuern oder neu anlernen zu können.

Meine docker-compose.yml enthält dieselben Informationen wie in der Anleitung. Der GitHub Issue #1448 beschreibt das gleiche Problem, doch ist die angebliche "Lösung" der Ausgangspunkt in der Anleitung. Hat mich also auch nicht weiter gebracht :|

In Docker läuft noch Homebridge, Portainer und Traefik, alles ohne Komplikationen und mit ausreichend Leistung. Muss ich für die Kommunikation des Funkmoduls in den Container noch etwas anderes umstellen?

Hier meine docker-compose.yml:

Code: Alles auswählen

version: "3.8"

services:
  traefik:
    image: traefik:v2.9
    container_name: traefik
    command:
      - '--api.insecure=true'
      - '--providers.docker=true'
      - '--providers.docker.exposedbydefault=false'
      - '--entrypoints.web.address=:80'
    restart: unless-stopped
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - traefik.enable=false

  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:
      - "9083:80"
      - "2001:2001"
      - "2010:2010"
      - "9292:9292"
      - "8181:8181"
      - "9874:9874"
      - "9877:9877"
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.cal.rule=Host(`ccu.docker01.local`)'
      - 'traefik.http.routers.cal.entrypoints=web'
      - 'traefik.http.services.cal.loadbalancer.server.port=9083'
    environment:
      - APP_NAME=CCU
      
  homebridge:
    image: oznu/homebridge:latest
    container_name: homebridge
    restart: always
    volumes:
      - ./volumes/homebridge:/homebridge
    logging:
      driver: json-file
      options:
        max-size: "10mb"
        max-file: "1"
    network_mode: host

networks:
  internal:
    driver: bridge

volumes:
  ccu_data:
Und ja, die Traefik Einstellungen müssen nicht korrekt sein.

Danke im Voraus!
Zuletzt geändert von tomo_2403 am 01.02.2023, 16:03, insgesamt 2-mal geändert.
VG Tom

Benutzeravatar
jmaus
Beiträge: 9846
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von jmaus » 31.01.2023, 18:03

tomo_2403 hat geschrieben:
31.01.2023, 16:08
[...]
ich bin nun von meiner normalen RaspberryMatic auf eine virtuelle Umgebung in Docker umgestiegen.
[...]
Die Installation ist soweit geglückt, allerdings wird das Funkmodul nicht mehr erkannt.
Na dann zeig mal her was da genau nicht erkannt wird. Zeig den Inhalt der /var/log/boot.log oder die Ausgaben des docker logs wenn der Container bootet.
tomo_2403 hat geschrieben:
31.01.2023, 16:08
Meine docker-compose.yml enthält dieselben Informationen wie in der Anleitung. Der GitHub Issue #1448 beschreibt das gleiche Problem, doch ist die angebliche "Lösung" der Ausgangspunkt in der Anleitung. Hat mich also auch nicht weiter gebracht :|
Nun, im Grunde sind die immer mal wieder aufkommenden Probleme mit dockerisierten RaspberryMatic Installation in der lokalen Installation zu suchen. Wenn das Funkmodul beim durchbooten des Containers nicht gefunden wird, dann liegt das an fehlenden Dependencies bzw. Fehlkonfiguration die im Host-Betriebssystem (auf dem Docker läuft) zu suchen sind. Das Problem das man ja mit einer dockerisierten RaspberryMatic hat ist, das von innerhalb des Docker Containers dieser nicht nur auf das Funkmodul zugreifen muss, es müssen die entsprechenden Kernel module (generic-raw-uart, eq3_char_loop, etc.) dort ordentlich kompiliert sind und eb en unter /lib/modules/... liegen sodass diese Kernelmodule dann beim starten des Containers geladen und eben entsprechend genutzt werden können. Wenn das nicht der Fall ist oder die Kernelmodule nicht richtig funktionieren oder installiert sind kann RaspberryMatic nicht auf das /dev/raw-uart device zugreifen, usw. Und leider ist es mitunter so, das von HostOS Version zu HostOS Version, usw. die notwendigen Schritte um das HostOS soweit einzurichten das ein docker container auf die notwendigen kernel module zugreifen kann und dabei keine permission probleme bekommen etwas anders.

Genau deshalb muss man die Anleitung sehr penibel durchgehen und auch schauen ob man in bekannte Probleme rennt wie hier (https://github.com/jens-maus/RaspberryM ... tup-errors) beschrieben.

Deshalb ist es leider so, das ein docker-basiertes RaspberryMatic gerade für den nicht so erfahrenen Docker-Nutzer oftmals eine zu große Hürde darstellt und da kann ich dann weiter nur dazu raten doch darüber nachzudenken auf Docker zu verzichten und ggf. eine andere Virtualisierungsart einzusetzen oder eben doch auf einen vollwertigen RaspberryPi zu setzen.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

tomo_2403
Beiträge: 23
Registriert: 03.12.2022, 16:43
System: CCU
Hat sich bedankt: 1 Mal

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von tomo_2403 » 01.02.2023, 11:28

Hier ist der Boot Log des Containers:
_ccu_logs.txt
(1.16 KiB) 19-mal heruntergeladen
Die beschriebenen Fehler in der Anleitung habe ich nicht erkannt. Ich habe dennoch mal die Fehlerhebung durchgeführt, jedoch auch ohne Erfolg:

Code: Alles auswählen

Error response from daemon: Your kernel does not support CPU real-time scheduler
Die nötigen Pakete sind wie gesagt alle installiert. Um alle auf Funktionalität zu prüfen, fehlen mir leider die Kenntnisse.
VG Tom

Benutzeravatar
jmaus
Beiträge: 9846
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von jmaus » 01.02.2023, 11:53

tomo_2403 hat geschrieben:
01.02.2023, 11:28
Hier ist der Boot Log des Containers:_ccu_logs.txt
Nun, die sehen ja recht ernüchternd aus. Kann halt das Funkmodul nicht finden. Das kann natürlich mehrere Gründe haben. Ein Grund könnte eben sein das du nicht die notwendigen anpassungen an der /boot/config.txt bzw. im /boot fs umgesetzt hast (z.B. bluetooth abschalten, etc.) und er deshalb nicht das Funkmodul addressieren kann bzw. das generic-raw-uart nicht dafür laden kann. Hast du mal probiert die deploy.sh zu erst zu probieren um zu schauen ob damit der container funktioniert?
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

tomo_2403
Beiträge: 23
Registriert: 03.12.2022, 16:43
System: CCU
Hat sich bedankt: 1 Mal

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von tomo_2403 » 01.02.2023, 14:05

Alle Schritte aus der Anleitung zwecks der Anpassung für die Konnektivität habe ich befolgt. Ich hab den existierenden Container komplett gelöscht und deploy.sh verwendet. Hier ist der Output:

Code: Alles auswählen

admin@docker01:~ $ sudo ./deploy.sh
Detected RaspberryPi - install kernel sources and raspberry modules
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  pivccu-modules-raspberrypi
0 upgraded, 1 newly installed, 0 to remove and 50 not upgraded.
Need to get 2964 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 https://www.pivccu.de/piVCCU stable/main arm64 pivccu-modules-raspberrypi all 2.0-17 [2964 B]
Fetched 2964 B in 0s (6615 B/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LC_TERMINAL = "iTerm2",
	LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_GB.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Preconfiguring packages ...
Selecting previously unselected package pivccu-modules-raspberrypi.
(Reading database ... 55646 files and directories currently installed.)
Preparing to unpack .../pivccu-modules-raspberrypi_2.0-17_all.deb ...
dpkg-divert: warning: please specify --no-rename explicitly, the default will change to --rename in 1.20.x
Adding 'diversion of /var/lib/piVCCU/dtb/overlays/pivccu-raspberrypi.dtbo to /usr/share/rpikernelhack/overlays/pivccu-raspberrypi.dtbo by rpikernelhack'
Unpacking pivccu-modules-raspberrypi (2.0-17) ...
Setting up pivccu-modules-raspberrypi (2.0-17) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Removing 'diversion of /var/lib/piVCCU/dtb/overlays/pivccu-raspberrypi.dtbo to /usr/share/rpikernelhack/overlays/pivccu-raspberrypi.dtbo by rpikernelhack'
Created symlink /etc/systemd/system/multi-user.target.wants/pivccu-rpi-modules.service → /lib/systemd/system/pivccu-rpi-modules.service.

NOTE: please ensure that your GPIO UART is free if you plan to connect your CCU adapter to it
See step 5 and 6 at https://github.com/alexreinert/piVCCU/blob/master/docs/setup/raspberrypi.md
Adding/Updating udev rule
Pull/Update OCI image ghcr.io/jens-maus/raspberrymatic:latest
"docker pull" requires exactly 1 argument.
See 'docker pull --help'.

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry
admin@docker01:~ $
Ein Container wurde nicht angelegt.
VG Tom

Benutzeravatar
jmaus
Beiträge: 9846
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von jmaus » 01.02.2023, 15:00

tomo_2403 hat geschrieben:
01.02.2023, 14:05
Alle Schritte aus der Anleitung zwecks der Anpassung für die Konnektivität habe ich befolgt. Ich hab den existierenden Container komplett gelöscht und deploy.sh verwendet. Hier ist der Output:

Code: Alles auswählen

[...]
The following NEW packages will be installed:
  pivccu-modules-raspberrypi
0 upgraded, 1 newly installed, 0 to remove and 50 not upgraded.
Need to get 2964 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 https://www.pivccu.de/piVCCU stable/main arm64 pivccu-modules-raspberrypi all 2.0-17 [2964 B]
Na das zeigt mir doch schon bereits das du wohl doch nicht ALLE Schritte der Anleitung befolgt hast, denn sonst würde er ja nicht versuchen das "pivccu-modules-raspberrypi" Paket zu installieren das angeblich ja in deinem Hostsystem fehlt. Genau das steht aber in der Anleitung wenn man ein Funkmodul am GPIO Bus betreiben will.
tomo_2403 hat geschrieben:
01.02.2023, 14:05

Code: Alles auswählen

Pull/Update OCI image ghcr.io/jens-maus/raspberrymatic:latest
"docker pull" requires exactly 1 argument.
See 'docker pull --help'.
Ein Container wurde nicht angelegt.
Das Problem habe ich nun im deploy.sh repariert. Bitte noch einmal probieren, dann sollte das klappen. Ich vermute allerdings das das fehlende pivccu-modules-raspberrypi Paket bereits dein problem lösen sollte. Schau dir noch einmal die Dokumentation (https://github.com/jens-maus/RaspberryM ... ost-system) genau an und hier vor allem den Punkt 5 wo beschrieben wird das man dieses Paket braucht wenn man ein Funkmodul auf dem GPIO Bus betreiben möchte.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

tomo_2403
Beiträge: 23
Registriert: 03.12.2022, 16:43
System: CCU
Hat sich bedankt: 1 Mal

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von tomo_2403 » 01.02.2023, 15:19

Ob du es mir glaubst oder nicht, aber ich habe alles unter Punkt 5 durchgeführt. "pivccu-modules-raspberrypi" ist schon zum Zeitpunkt der allerersten Installation bereits erfolgreich installiert:

Code: Alles auswählen

admin@docker01:~ $ sudo apt update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye-updates InRelease
Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease
Hit:4 http://security.debian.org/debian-security bullseye-security InRelease
Hit:5 https://download.docker.com/linux/debian bullseye InRelease
Hit:6 https://www.pivccu.de/piVCCU stable InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
52 packages can be upgraded. Run 'apt list --upgradable' to see them.
admin@docker01:~ $ sudo apt install pivccu-modules-raspberrypi
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
pivccu-modules-raspberrypi is already the newest version (2.0-17).
0 upgraded, 0 newly installed, 0 to remove and 52 not upgraded.
admin@docker01:~ $
In der /boot/config.txt befinden sich auch die Anweisungen für HM-MOD-RPI-PCB

Code: Alles auswählen

dtoverlay=disable-bt
dtoverlay=miniuart-bt
core_freq=250
Diesmal sieht das Ergebnis von deploy.sh besser aus:

Code: Alles auswählen

admin@docker01:~ $ sudo ./deploy.sh
Stopping+Removing old container
Pull/Update OCI image ghcr.io/jens-maus/raspberrymatic:latest
latest: Pulling from jens-maus/raspberrymatic
Digest: sha256:b88e23439690f55db424d910e9c96094b289427b28f9e2b3d4b0a20c58a41b3f
Status: Image is up to date for ghcr.io/jens-maus/raspberrymatic:latest
ghcr.io/jens-maus/raspberrymatic:latest
Starting container:
docker run -d -ti --privileged --volume ccu_data:/usr/local:rw --volume /lib/modules:/lib/modules:ro --hostname ccu --name ccu -p 2222:22 -p 8080:80 -p 8443:443 -p 2001:2001 -p 2010:2010 -p 8181:8181 -p 9292:9292 --stop-timeout 30 --restart always  ghcr.io/jens-maus/raspberrymatic:latest

Docker container started!
- See logs with "docker logs ccu"
- Connect to http://<this server IP>:8080
Allerdings sehen die Logs nach wie vor nicht überzeugend aus:

Code: Alles auswählen

admin@docker01:~ $ docker logs ccu
Starting watchdog...
Identifying host system: oci, OK
Initializing RTC Clock: no hardware found
Running sysctl: OK
Checking for Factory Reset: not required
Checking for Backup Restore: not required
Initializing System: OK
Setup ca-certificates: OK
Starting logging: OK
Populating /dev using udev: done
Init onboard LEDs: init, OK
Starting irqbalance: OK
Starting iptables: OK
Starting network: eth0: link up, fixed, firewall, inet up, 172.17.0.3, OK
Identifying Homematic RF-Hardware: HmRF: n/a, HmIP: n/a, OK
Updating Homematic RF-Hardware: no GPIO/USB connected RF-hardware found
Starting hs485dLoader: disabled
Starting xinetd: OK
Starting eq3configd: OK
Starting lighttpd: OK
Starting ser2net: disabled
Starting ssdpd: OK
Starting NUT services: disabled
Initializing Third-Party Addons: OK
Starting LGWFirmwareUpdate: ...OK
Setting LAN Gateway keys: OK
Starting hs485d: disabled
Starting multimacd: not required
Starting rfd: no BidCos-RF hardware found
Starting HMIPServer: .......OK
Starting ReGaHss: .OK
Starting CloudMatic: OK
Starting NeoServer: disabled
Starting Third-Party Addons: OK
Starting crond: OK
Setup onboard LEDs: booted, OK
Finished Boot: 3.67.10.20230114 (raspmatic_oci_arm64)
Kann auch sein, dass ich gerade komplett auf dem Schlauch stehe und etwas offensichtliches übersehe.
VG Tom

Benutzeravatar
jmaus
Beiträge: 9846
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von jmaus » 01.02.2023, 15:29

Nunja, die erste Logausgabe zeigte doch aber das das Paket fehlte. Und danach brauch es natürlich dann auch noch einen frischen Neustart bevor man versuchen kann den Container zu starten. Hoffe das hast du beachtet. Ansonsten musst du halt mal im "dmesg" ausschau halten nach den kernel modul nachrichten ob die überhaupt geladen werden, etc. und ob es /dev/raw-uart gibt usw...
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

tomo_2403
Beiträge: 23
Registriert: 03.12.2022, 16:43
System: CCU
Hat sich bedankt: 1 Mal

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von tomo_2403 » 01.02.2023, 16:02

An den Neustart hatte ich natürlich nicht gedacht. Jetzt funktioniert endlich alles, auch mit docker-compose.yml.
Danke!
VG Tom

Benutzeravatar
jmaus
Beiträge: 9846
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: RaspberryMatic in Docker mit HM-MOD-RPI-PCB

Beitrag von jmaus » 01.02.2023, 18:40

tomo_2403 hat geschrieben:
01.02.2023, 16:02
An den Neustart hatte ich natürlich nicht gedacht. Jetzt funktioniert endlich alles, auch mit docker-compose.yml.
Danke!
Also war es doch das fehlende pivccu Paket! Gut das du es gefunden hast und es nun geht.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „RaspberryMatic“