openHABian + Homegear (Error in file Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS)

Also es hat auf jeden Fall etwas mit den Zugriffsrechten auf irdenwelche Ordner etc. zu tun.

Selbst wenn ich die Rechte mal an homegear:homegear vergebe, sind sie nach einem neustart wieder in folgendem Zustand:

sudo ls -la /var/run/homegear/
total 4
drwxrwx---  2 root root  60 Jul 24 23:44 .
drwxr-xr-x 29 root root 900 Jul 24 23:50 ..
-rw-r--r--  1 root root   3 Jul 24 23:44 homegear-management.pid

Was genau kann das sein? Was mache ich falsch?

Hier noch ein Einblick:
ls -la /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Jul 24 23:44 /dev/ttyS0

nach einem Update von OpenHAB habe ich das gleiche Problem.
sudo chmod 755 /etc/homegear/families
sudo chmod 755 /var/run/homegear
Nach Erteilen von weiteren Zugriffsrechten, bleibt noch die Fehlermeldung mit dem Socket übrig:
Starting script engine server…
Script Engine Server: Critical: Couldn’t delete existing socket: /var/run/homegear/homegearSE.sock. Please delete it manually. The script engine won’t work. Error: Permission denied
Critical: Cannot start script engine server. Exiting Homegear.

Meines Wissens startet man die homegear-Konsole mit

sudo homegear -r

Ich mache auch folgendes bei einer Neuinstallation:

usermod -a -G dialout homegear

Ich habe allerdings keine Ahnung, was alles von openHABian gemacht wird.

nach deinstallation und Installation mit openhabian-config hat homegear immerhoin mal funktioniert. Nachdem BlueNode nicht funktioniert hat (nach login http://openhabian:2001/node-blue/signin.php kam nichts mehr) habe ich einen Rebbot gemacht und danach war homegear wieder kaputt.

Das Verzeichnis /var/run/homegear/ hat auch nur eine Datei homegear-management.pid und es fehlen die links zu den Sockets.
Was kann da schief laufen?

1 Like

Genau das ist auch mein Problem :slight_smile:
Hat jemand vielleicht eine Antwort?

Ich habe dasselbe Problem, siehe https://forum.homegear.eu/t/verzeichnis-für-sockets-nach-reboot-manuell-anlegen/3567/6

Es scheint hier ein Problem mit openhabian vorzuliegen. Wenn ich es richtig lese - ohne eigene Erfahrung mit openhabian - ist an der Verzeichnisstruktur und den Berechtigungen irgendwas geändert worden womit homegear nicht klar kommt.

Habr ihr beim Betreuer von openhabian mal nachgefragt? @sathya, kannst du etwas sagen woran es liegen kann?

Ich hatte hier im openHABian Forum einmal nachgefragt. Bisher leider ohne Erfolg. Vielleicht helfen euch ja die Tipps? Ihr könnt ja mal berichten :slight_smile:

Siehe hier: https://community.openhab.org/t/faulty-homegear-installation-over-openhabian-config/102765

Nein, damit erzeugst du genau das Problem. Denn dann läuft die Console ja als root und hinterläßt Dateien die nur für root schreib/löschbar sind wie z.B. den o.g. Socket.

Also: service stoppen (sudo systemctl stop homegear), alles in /run/homegear/ löschen, service wieder starten.

homegear-Console nicht mehr als root starten, sondern als User openhabian.

Und mal die ganzen Dateien unterhalb /etc/homegear überprüfen, ob sie von der group homegear gelesen werden dürfen bzw. die Directories ob das x-Bit für die Gruppe gesetzt ist.
Auch mal /etc/systemd/system/homegear.service überprüfen daß dort (aus dem Kopf) User=homegear, Group=homegear, RuntimeDirectory=homegear und auch RuntimeDirectoryMode=0755 gesetzt sind.

EDIT: es gibt zwei Service-Dateien homegear.service, auf Debian einmal eine in /etc/systemd/system/, die aus openHABian stammt, und einmal die aus dem pkg in /lib/systemd/system/.
Die in /etc von openHABian hat Vorrang.

2 Likes

Interessant. Klingt, logisch, vielen Dank. Das werde mal demnächst durchführen, wenn ich etwas Zeit habe. Im Moment läuft mein System aber sehr gut, da lebe ich damit, dass ich die Konsole mit sudo starte. Keine Ahnung wo ich her hatte, dass das so soll.

Ich habe mal spasseshalber gegoogelt, sudo homegear -r liefert 2 Seiten Ergebnisse, homegear -r liefert 4. Da die sudo-Variante ja in der Anderen enthalten ist, meint die eine Hälfte mit, die Andere ohne sudo. :wink:

Ich habe gerade alles gepurged, was es gab. Und danach noch einmal die einzelnen Verzeichnisse nach homegear durchsucht und den Rest manuell gelöscht.

Nach einem Neustart und der neuen, sauberen Installation über config-openhabian, kommt nach der Installation dieses Fenster, in dem explizit erwähnt wird, dass man die homegear-console über “sudo homegear -r” starten soll :confused:

soll man nicht, demnächst sagt auch das Fenster das nicht mehr

1 Like

Alles klar :slight_smile:

Ich kann nun “homegear -r” starten und auch “familie select 0” ausführen. Jedoch kann ich mich nicht pairen.

Ein Blick in die homegear.err zeigt folgendes:

07/31/20 13:59:51.238 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:00:21.239 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:00:22.265 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:00:24.267 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:00:54.268 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:00:55.292 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:00:57.294 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:01:27.294 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:01:28.315 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:01:30.317 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:02:00.317 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:02:01.341 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:02:03.343 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:02:33.343 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:02:34.368 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:02:36.370 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:03:06.370 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:03:07.396 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:03:09.398 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:03:39.398 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:03:40.428 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:03:42.430 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:04:12.430 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:04:13.452 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:04:15.454 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:04:45.454 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:04:46.480 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:04:48.482 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:05:18.483 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
07/31/20 14:05:19.511 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
07/31/20 14:05:21.525 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
07/31/20 14:05:51.525 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.

Wie komme ich nun hier weiter? :slight_smile:
Der Prozess/Service läuft jedenfalls.

Ach und zur Info: das lief bei mir schonmal alles einwandfrei. Habe nur mein 3 Jahre altes System einmal komplett neu und frisch aufgesetzt. Damit ist jedenfalls zumindest die Hardware als Fehlerquelle auszuschließen.

Auch bei mir lief OpenHAB 2.5.4 mit Homegear stabil. Nun dachte ich es sei mal wieder Zeit für ein Update, zumal nur 0.0.3 Versionsprung kein Ungemach dieser Größenordnung erahnen ließ.

Homegear lässt sich nun als ‘homegear -r’ starten und antwortet. Auch der HomematicManager zeigt alle Geräte an.
Allerdings sehe ich im /var/log/homegear/homegear.err ein Kommunikationsproblem:
“Module HomeMatic BidCoS: HM-MOD-RPI-PCB “My-HM-MOD-RPI-PCB”: Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void BidCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device “hm-mod-rpi-pcb”: Unable to retrieve path.”

In dem Chaos der unterschiedlichsten Anleitungen habe ich mir mal aufgeschrieben, dass
“ls -l /dev/serial1” den Wert “/dev/serial1 -> ttyS0” zurückgeben soll.
Aber “ls: cannot access ‘/dev/serial1’: No such file or directory” sagt, nix serial1 vorhanden.
Braucht es serial1 noch?

Nach vielen Installationsversuchen und Stunden des Probierens komme ich zum Schluss, dass mit einer Veränderung des OpenHABian Linux GPIO Zugriffe anders funktionieren. Leider habe ich kein Image mehr, das noch funktioniert, weil gleich beim Installieren ein Update drüber läuft. Sehr ärgerlich.

Ich habe ein Buster Image openhabian-pi-raspbian-201908050414-gitca0976f-crc6a66b5a1.img.xz und ein Strech Image openhabianpi-raspbian-201804031720-gitdba76f6-crc9e93c3eb.img.xz probiert. Jedes Mal lande ich nach der Installation bei openHAB 2.5.7-1 (Release Build).

sudo openhabian-config
Install Homegear in Optional Components
WICHTIG: Apply Improvements -> Fix Permissions (otherwise Could not connect to socket. Error: No such file or directory for homegear -r)

Anpassungen an vier Dateien /etc/homegear/families/ `homematicbidcos.conf, /boot/config.txt, /boot/cmdline.txt und /etc/udev/rules.d/99-com.rules wie hier
https://doc.homegear.eu/homegear-homematicbidcos/configuration.html beschrieben.

Reboot

Module HomeMatic BidCoS: HM-MOD-RPI-PCB “My-HM-MOD-RPI-PCB”: Error in file PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp line 969 in function void idCoS::Hm_Mod_Rpi_Pcb::doInit(): Failed to open value file for GPIO with index 1 and device “hm-mod-rpi-pcb”: Unable to retrieve path.
Im Source Code https://github.com/Homegear/Homegear-HomeMaticBidCoS/blob/master/src/PhysicalInterfaces/Hm-Mod-Rpi-Pcb.cpp
openGPIO(1, false);
setGPIO(1, false);
std::this_thread::sleep_for(std::chrono::milliseconds(100));
setGPIO(1, true);
closeGPIO(1);

Da scheint der Zugriff auf GPIO im Raspi nicht freigegeben zu sein. Beschreibung liegt hier /boot/overlays/README.

Vielleicht in /boot/config.txt? Hat jemand eine Idee, was korrigiert werden muss?

1 Like

Jetzt habe ich eine Lösung gefunden, die bei mir funktioniert.

GPIO18 war nicht unter /sys/class/gpio sichtbar, somit zeigt
ls -l /sys/devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio18
auch keine Einträge.

Mit dieser Sequenz habe ich GPIO18 angelegt und nach einem Reboot funktioniert wieder alles. Hilfreich war http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_GPIO_Shell.html
Obwohl ein paar Fehlermeldungen noch immer im Homegear-Logfile auftauchen.

sudo su
echo “18” > /sys/class/gpio/export
echo “out” > /sys/class/gpio/gpio18/direction
echo “0” > /sys/class/gpio/gpio18/value
chown homegear:homegear /sys/devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio18/direction
chown homegear:homegear /sys/devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio18/edge
chown homegear:homegear /sys/devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio18/value

Bei vorherigen Installationen (bis OpenHABian 2.5.4) hat es einfach funktioniert: hassle-free.
Was ist die Ursache dafür, dass ich das von Hand nachtragen muss?

Wie ich z.T. bereits im openHAB-Forum geantwortet habe, sind in diesem Post gleich mehrere Dinge bedenklich und bedürfen einer Richtigstellung, weil das keineswegs zur Nachahmung empfohlen ist.

Zunächst einmal: wenn du von einem 3 Jahre alten System kommst, dann ist es arg naiv zu erwarten daß bei dem dabei erfolgenden Wechsel auf eine neuere Basis-Betriebssystem-Version keine Änderungen nötig sind.
Mit der openHAB- oder openHABian-Version hat das noch nicht einmal etwas zu tun. Über Änderungen aller dieser drei muß man sich im Vorfeld eines Upgrades natürlich gründlich informieren.

Zweitens hast du da anscheinend schon vor 3 Jahren konzeptionell etwas in den falschen Hals gekriegt und willst dies nun weiterführen, nämlich den direkten Zugriff auf RPi-GPIOs von homegear aus.
Du willst also quasi den openHAB-Server mit openHABian/Raspbian als OS als Aktor missbrauchen.
Das ist aus verschiedenen Gründen keine gute Idee, u.a. weil es die Betriebsstabilität gefährdet.
Vor allem in Kombination mit openHAB ist es aber gänzlich abzulehnen. Wenn du openHAB fährst, dann mußt du auch auf alle Hardware via openHAB zugreifen (also per GPIO binding, wenn’s denn unbedingt sein soll) und nicht direkt per homegear.

Und bei allen guten Absichten die du sicherlich mit diesem Post verfolgst, ist drittens auch dein Workaround ist eine schlechte Idee, weil sie den regulären Zugriff anderer Un*x-User wie z.B. dem openhab-User auf GPIOs verhindert. Wenn überhaupt solltest du dem homegear-User Mitgliedschaft in einer Un*x-Gruppe hinzufügen, die schon Schreibrechte auf die Devices hat.
Kannst du für dich gern so handhaben, aber der Direkt-Zugriff auf GPIOs bleibt ein kaputtes Konzept.
Poste das also bitte nicht als Lösung zur Nachahmung.

Hallo @harabeck, und @mstormi
habe leider selbiges Problem. ist meine Erstinbetriebnahme von homegear auf einem frischen openhab image mit direkter installation von homegear aus openhabian-config (inkl. fixes)
wollte es erst auf einem sauberen System testen bevor ich es in meine Produktivumgebung umziehe.
Der Workaround scheint bei mir leider auch nicht zu funktionieren.
Was wäre denn dann der korrekte Weg? Wo wird das Thema denn noch gerade diskutiert?
Homegear in die entsprechende Gruppe aufzunehmen klingt plausibel…

Schon mal Danke für eure Posts.

Schrieb ich doch: benutz das openHAB GPIO binding anstelle die über homegear steuern zu wollen.
Workarounds sind workarounds, keine Lösungen.

BTW, es gibt demnächst ein neues Image. Man sollte jetzt schon mit diesem beginnen.