Homegear + Raspberry Pi 3 + Bluetooth?

Hallo,

ich habe mir einen Raspberry Pi 3 + HM-MOD-RPI-PCB zugelegt und das “Raspbian 8 with Homegear and openHAB preinstalled”-Image von der Homegear-Seite auf die SD-Karte geschoben. Nach langer Recherche, Konfiguration und Herumprobieren habe ich wieder alles runtergeschmissen und ein offizielles Raspbian 8 aufgespielt und Homegear über die Paketquellen nachinstalliert.

In beiden Fällen erhalte ich:
Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.

Die gleiche Meldung kommt, wenn ich den HM-MOD-RPI-PCB gar nicht erst aufgestecke. Vielleicht habe ich beim Löten etwas versemmelt.

Aber eine ganz andere Sache: Der Raspberry Pi 3 hat integriertes Bluetooth. Das brauche ich für andere Anwendungen. Lässt sich das parallel zum HM-MOD-RPI-PCB nutzen oder schließen die sich gegenseitig aus? Nach Folgen der Anleitung zur Konfiguration des HM-MOD-RPI-PCB taucht der Adapter nämlich nicht unter lsusb auf und kann mit hcitool scan auch nicht als Device gefunden werden.

Ist mein Raspberry Pi kaputt?
Ist mein HM-MOD-RPI-PCB kaputt?
Muss ich Bluetooth über einen Stick machen?
Soll ich mir statt dem HM-MOD-RPI-PCB einen CUL-USB-Stick kaufen?

Danke für Antworten. Unten hänge ich noch ein Paar Konfigurationsdateien an.

Gruß
Yoshi


homematicbidcos.conf

 [HomeMatic Wireless Module for Raspberry Pi]
 id = My-HM-MOD-RPI-PCB
 default = true
 deviceType = hm-mod-rpi-pcb
 device = /dev/ttyS0
 responseDelay = 95
 gpio1 = 18

/boot/config.txt

enable_uart=1
dtparam=spi=on
dtparam=i2c_arm=on

/boot/cmdline.txt

dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
auch schon probiert:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Hi @yoshi,

wenn ich mich richtig entsinne, benutzt das HM-MOD-RPI den UART der auf den entsprechenden Pins liegt wo es aufgesteckt wird. Dieser UART wir meines Wissens nach auch für Bluetooth benutzt.

Wenn du das offizielle Raspbian Image einsetzt ist es wichtig, dass du die udev-rule löschst: https://doc.homegear.eu/data/homegear-homematicbidcos/configuration.html#config-hm-mod-rpi-pcb:

If you’re using the official Raspbian, you need to delete the file /etc/udev/rules.d/99-com.rules for Homegear to be able to access the GPIOs.

Siehe auch hier:

so long,
p

Hallo @yoshi,

Ja, bitte :-P! Hauptgrund ist, mit dem HM-MOD-RPI-PCB gibt es offenbar noch Stabilitätsprobleme. Zudem scheinen aktuell Wake-up-Pakete nicht zu funktionieren (das muss ich mir noch anschauen).

Würde ich so schnell erst einmal nicht von ausgehen.

Ich denke nicht, so lange du den HM-MOD-RPI-PCB über /dev/ttyS0 ansprichst. Die serielle Konsole funktioniert ja auch mit aktiviertem Bluetooth.

Nimm das console=ttyAMA0,115200 mal aus der “/boot/cmdline.txt”. Weiterhin folge wirklich Schritt für Schritt der Anleitung auf doc.homegear.eu. Dann sollte es eigentlich klappen ;-).

Viele Grüße

Sathya

Danke für die Antworten.
Mein HM-MOD-RPI-PCB funktioniert jetzt. Musste nochmal mit dem Lötkolben ran :wink:

Nun stoße ich auf 3 Fälle:

a) Die Datei /etc/udev/rules.d/99-com.rules existiert.homegear will automatisch beim Systemstart starten, die Log zeigt jedoch, dass wir keine Berechtigung auf die GPIO haben. Das gleiche erscheint wenn ich homegear -d starte oder service homegear start. Bluetooth funktioniert.

b) Die Datei /etc/udev/rules.d/99-com.rules existiert weiterhin. Ich beende den homegear-Service und starte homegear (nicht als daemon) als root manuell in der Konsole. Homegear funktioniert. Bluetooth funktioniert.

c) Ich lösche die Datei 99-com.rules. homegear will automatisch beim Systemstart starten, mit Erfolg. Homegear funktioniert. Bluetooth funktioniert nicht.

Jetzt kann es doch eigentlich nur noch ein kleiner Schritt sein, damit homegear erfolgreich beim Systemstart startet (Fall c)) und gleichzeitig Bluetooth funktioniert (Fall a)). Unten ist meine 99-com.rules dargestellt. Reicht es eventuell, bestimmte Zeilen daraus zu entfernen?

Gruß
Yoshi

SUBSYSTEM=="input", GROUP="input", MODE="0660"
SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660"
SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660"

SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c '\
	chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\
	chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio;\
	chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\
'"

KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
	ALIASES=/proc/device-tree/aliases; \
	if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
		echo 0;\
	elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
		echo 1; \
	else \
		exit 1; \
	fi\
'", SYMLINK+="serial%c"

KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
	ALIASES=/proc/device-tree/aliases; \
	if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
		echo 0; \
	elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
		echo 1; \
	else \
		exit 1; \
	fi \
'", SYMLINK+="serial%c"

Ich habe jetzt mal die drei 770er in 777er geändert und der Service startet nun. Das Problem sei nun also gelöst.

Hallo @yoshi,

im aktuellen Nightly setzt Homegear auch die “Hilfsgruppen” (supplementary groups) korrekt. Dadurch ist das “777” nicht mehr notwendig. Die 99-com.rules muss dadurch ebenfalls nicht gelöscht werden. Es reicht eine Mitgliedschaft des Nutzers “homegear” in der Gruppe “dialout”, welche standardmäßig vorhanden ist.

Viele Grüße

Sathya

1 Like

Es hat alles super geklappt, gestern hab ich auf 0.6.12-857 geupdatet und heute den Raspberry Pi neugestartet. Jetzt klappt gar nix mehr:

01/12/17 23:07:45.012 Error: A core file exists in Homegear's working directory ("/var/lib/homegear/core"). Please send this file to the Homegear team including information about your system (Linux distribution, CPU architecture), the Homegear version, the current log files and information what might've caused the error.
01/12/17 23:07:45.012 Error: A core file exists in Homegear's working directory ("/var/lib/homegear/core"). Please send this file to the Homegear team including information about your system (Linux distribution, CPU architecture), the Homegear version, the current log files and information what might've caused the error.
01/12/17 23:07:45.046 Failed to set GPIO with index "1": Device not open.
01/12/17 23:07:45.046 Failed to set GPIO with index "1": Device not open.
01/12/17 23:08:15.046 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
01/12/17 23:08:15.046 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.
01/12/17 23:08:16.967 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
01/12/17 23:08:16.967 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
01/12/17 23:08:18.968 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Connected to HM-MOD-RPI-PCB.
01/12/17 23:08:18.969 Error in file Systems/IPhysicalInterface.cpp line 331 in function virtual void BaseLib::Systems::IPhysicalInterface::openGPIO(uint32_t, bool): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
01/12/17 23:08:18.969 Error in file Systems/IPhysicalInterface.cpp line 331 in function virtual void BaseLib::Systems::IPhysicalInterface::openGPIO(uint32_t, bool): Failed to open value file for GPIO with index 1 and device "hm-mod-rpi-pcb": Unable to retrieve path.
01/12/17 23:08:18.969 Failed to set GPIO with index "1": Device not open.
01/12/17 23:08:18.969 Failed to set GPIO with index "1": Device not open.
01/12/17 23:08:19.070 Failed to set GPIO with index "1": Device not open.
01/12/17 23:08:19.070 Failed to set GPIO with index "1": Device not open.

Was ist denn die core file?

Das core file wird im Fehlerfall von homegear nach /var/lib/homegear geschrieben und enthälft Informationen die @sathya weiterhelfen können einen Fehler zu debuggen.

Wenn alles läuft kannst du das getrost löschen.

Der Merge war fehlerhaft. Mit 0.6.13 geht alles wieder.

Viele Grüße

Sathya

Danke. Nach dem Update hat wieder alles geklappt.

Gibt es vielleicht ein Stable-Repository, sodass man sich vor sowas schützen kann?

Die 0.6er-Reihe ist ja vorgetestet. Ein fehlerhafter Merge kann in Zukunft keine Probleme mehr auslösen - dafür habe ich im Skript jetzt gesorgt. In Zukunft wird es vor dem Stable-Merge RC-Versionen geben.

Viele Grüße

Sathya

1 Like