Hallo allerseits,
ich hab’ da mal 2 Fragen an die, die Homegear auf Raspi in Docker verwenden, denn ich komme einfach nicht mehr weiter. Ich will nämlich meine etliche Jahre alte Installation auf den aktuellen Stand bringen.
Was ich nutze:
- Raspi 3 B,
- frisches und neues Raspios (Bullseye lite server image, 32bit),
- aktuelle Version von Docker (20.10.21),
- angetackert an die Stiftleise ein CC1101-Module (läuft seit etlichen Jahren zuverlässig),
- Homegear-Konfiguration neu aufgesetzt und bisher nur minimal definiert, was für Homematic-BidCOS nötig ist.
Die Fehler bei Start des Homegear-Containers:
Thread-Fehler:
11/04/22 16:18:59.448 Critical: Can't start more threads. Thread limit reached (218 threads).
11/04/22 16:18:59.448 Critical: Can't start more threads. Thread limit reached (218 threads).
gpio-Zugriffsfehler:
11/04/22 16:19:21.134 Could not write to direction file (/sys/class/gpio/gpio25/direction) of GPIO with index 1: Permission denied
11/04/22 16:19:21.134 Could not write to edge file (/sys/class/gpio/gpio25/edge) of GPIO with index 1: Permission denied
11/04/22 16:19:21.135 Module HomeMatic BidCoS: TI CC110X "My-CC1101": Error in file PhysicalInterfaces/TICC1100.cpp line 849 in function void BidCoS::TICC1100::initDevice(): Failed to open GPIO value file "/sys/class/gpio/gpio25/value": Permission denied
Ich habe alles Mögliche zu (beiden) Fehlern in den Foren gelesen und ausprobiert, bisher ohne jeden Erfolg.
Hier sind die wichtigsten Raspi-Konfigurationen, die eine Rolle spielen können:
/etc/passwd (auf dem docker-Host):
homegear:x:114:114::/home/homegear:/usr/sbin/nologin
/etc/group (auf dem docker-Host):
spi:x:999:pi,homegear
gpio:x:997:pi,homegear
homegear:x:114:
Von den Konfigurationsdateien, die zu Homegear gehören, wurden nur die .conf-Dateien in /etc/homegear/families angepasst, und zwar wurden zunächst alle Family-Module ausgeschaltet, die ich nicht brauche. Dann bleibt noch übrig:
/etc/homegear/families/homematicbidcos.conf (Pfad innerhalb des Containers):
## The device family this interface is for
[TI CC1101 Module]
id = My-CC1101
default = true
deviceType = cc1100
device = /dev/spidev0.0
responseDelay = 100
interruptPin = 2
gpio1 = 25
(Das ist auch genau die Konfig, die ich schon lange auf dem “alten” Raspi verwende, auf dem Homegear direkt installiert ist.)
Schließlich ist hier noch der Aufruf zum Starten des Containers:
docker \
run --rm -d \
-v /docker/homegear-data/etc:/etc/homegear:Z \
-v /docker/homegear-data/lib:/var/lib/homegear:Z \
-v /docker/homegear-data/log:/var/log/homegear:Z \
-v /sys:/sys:rw \
--device=/dev/spidev0.0 \
--device /dev/gpiomem \
--privileged \
-e TZ=Europe/Berlin \
-e HOST_USER_ID=$(id -u homegear) -e HOST_USER_GID=$(id -g homegear) \
-p 18080:80 -p 18443:443 -p 2001:2001 -p 2002:2002 -p 2003:2003 \
--hostname homegear \
--name homegear \
homegear/homegear:nightly
Der Container läuft dann auch (wie es sein soll) unter homegear:homegear.
Ich habe in /boot/cmdline.txt auch mal versucht,
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
einzuschalten, was aber am Verhalten nichts geändert hat. Diese Konfig-Zeile scheint ja optional zu sein.
So, das wäre das Problem… Jede Hilfe ist sehr willkommen! Wobei das Thread-Problem ggf. auch durch Heruntersetzen der Thread-Zahlen in der Homegear-main.conf zu beseitigen wäre (ich verwende weder Skripte, noch Node-Blue, sondern OpenHAB für Logik und UI). Aber was ist das Problem beim Zugriff auf die gpio-Pins???
'n spannenden Abend noch,
HomeSweetHome