Support für neues Funkmodul HM-MOD-RPI-PCB für Raspberry Pi

Leider bekomm ich Homegear nicht zum laufen… Kompilieren und Installation der DEB-Pakete (libhomegear-base, homegear und homegear-homematicbidcos) läuft weitestgehend problemlos (die Abhängigkeiten, die in der Doku beschrieben, sind stimmen nicht oder sind nicht vollständig. Folgende Pakete musste ich noch installieren bzw. über “apt-get -f install” nachinstallieren lassen: libgnutlsxx28 libenchant1c2a libltdl7 libmcrypt4 libxslt1.1 p7zip-full php5-cli libqdbm14)

Folgendes steht (mehrfach) im Error-Log drin:

03/05/16 21:15:49.583 Error in file Systems/IPhysicalInterface.cpp line 330 in function virtual void BaseLib::Systems::IPhysicalInterface::openGPIO(uint32_t, bool): Failed to open GPIO value file "/sys/class/gpio/gpio18/value": Permission denied 03/05/16 21:15:49.584 Failed to set GPIO with index "1": Device not open. 03/05/16 21:15:49.684 Failed to set GPIO with index "1": Device not open. 03/05/16 21:16:19.685 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/05/16 21:16:21.601 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...

Die Berechtigungen auf /sys/class/gpio/gpio18/value sind 770 und Owner ist root:gpio. Laut “ps -elf|grep homegear” läuft der homegear-Prozess als User homegear und root. Laut “groups homegear” hat der User die Rolle gpio. Von daher sollte eigentlich alles zueinander passen.
Auch “sudo -u homegear touch /sys/class/gpio/gpio18/value” läuft erwartungsgemäß problemlos durch.

Zu dem “No Init packet received” habe ich leider nicht so wirklich einen Anhaltspunkt. Ich vermute, es ähnelt dem Problem, das ich am 01.03 um 20:37 hier schon mal beschrieben habe. Zuerst läuft LXCCU auf der einen SD-Karte, danach Homegear auf der zweiten Karte nicht und anschließend läuft LXCCU auf der ersten Karte wieder.
Aufgefallen ist mir in dem Zusammenhang auch, dass laut stty /dev/ttyAMA0 von LXCCU anders initialisiert wird als von Homegear:
LXCCU:

pi@rpi-lxccu ~ $ stty -a -F /dev/ttyAMA0
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany
-imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
pi@rpi-lxccu ~ $ stty -g -F /dev/ttyAMA0
0:4:1cb2:a30:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

Homegear:

root@raspberrypi:/home/pi# stty -a -F /dev/ttyAMA0 
speed 115200 baud; rows 24; columns 80; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>;
werase = <undef>; lnext = <undef>; flush = <undef>; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany
-imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
root@raspberrypi:/home/pi# stty -g -F /dev/ttyAMA0 
0:0:10b2:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

Hast du da eine Idee, wie ich das weiter analysieren könnte?

Hallo Zusammen,
würde gerne mittesten - habe mir das Modul geholt und angeschlossen und auch in der Config eingetragen.
Jetzt bekomme ich ein
03/22/16 19:15:08.377 Module HomeMatic BidCoS: HM-MOD-RPI-PCB “My-HM-MOD-RPI-PCB”: Warning: Too small packet received: 0C000000436F5F4350EAFE

03/22/16 19:16:02.311 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/22/16 19:16:02.312 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/22/16 19:16:04.247 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:16:04.248 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:16:06.250 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Connected to HM-MOD-RPI-PCB. 03/22/16 19:16:06.387 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Too small packet received: 0C000000436F 03/22/16 19:16:06.388 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Too small packet received: 0C000000436F 03/22/16 19:16:06.389 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Too large packet received: 5F4350555F424C7251 03/22/16 19:16:06.390 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Too large packet received: 5F4350555F424C7251 03/22/16 19:16:36.352 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/22/16 19:16:36.352 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/22/16 19:16:37.421 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:16:37.422 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:16:39.422 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Connected to HM-MOD-RPI-PCB. 03/22/16 19:16:39.559 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Too small packet received: 0C000000436F 03/22/16 19:16:39.559 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Too small packet received: 0C000000436F 03/22/16 19:17:09.523 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/22/16 19:17:09.523 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 03/22/16 19:17:10.591 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:17:10.591 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:17:12.592 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Connected to HM-MOD-RPI-PCB. 03/22/16 19:17:12.729 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (3). Trying to reconnect... 03/22/16 19:17:12.729 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (3). Trying to reconnect... 03/22/16 19:17:13.729 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 03/22/16 19:17:13.729 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect...
Jemand eine Idee?

hallo zusammen

@Stefan
Der Fehler der Berechtigungen ist ein Grundlegendes Problem von Raspian 8
Im folgenden Beitrag ist die Lösung dazu beschrieben:
viewtopic.php?f=18&t=411#p2660

Hat bei mir geholfen.

Grüsse

Silvan

Super, Danke für den Hinweis. Lag nicht an den Regeln für GPIO aber brachte mich in die richtige Richtung.
Bei mir war der serielle Port vom System belegt.
raspi-config
Advanced settings
Serielle ausgeschaltet
reboot

Jetzt mault Homegear nicht mehr :slight_smile: und ich kann testen…

Hallo Stefan,

Ja. Zum Teil musst du in Homegear die Geräte-Konfiguration auf die gleichen Werte wie auf der LXCCU setzen, damit es korrekt funktioniert.

Leider nirgendwo. Da musst du Quelltext wälzen.

Viele Grüße

Sathya

Habe Dank der Anmerkungen weiter vorne (udevs) die Fehlermeldung wegen fehlender Zugriffsrechte auf GPIO wegbekommen.

Was bleibt ist das hier:

05/31/16 21:05:45.120 Debug: Sleeping 98ms before sending response. 05/31/16 21:05:45.218 UPnP Server: Debug: Sending discovery response packets to 239.255.255.250 on port 1900 05/31/16 21:05:45.318 UPnP Server: Debug: Sending notify packets. 05/31/16 21:05:45.349 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received. 05/31/16 21:05:47.263 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Warning: Connection closed (1). Trying to reconnect... 05/31/16 21:05:47.264 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Connecting to HM-MOD-RPI-PCB... 05/31/16 21:05:49.265 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Connected to HM-MOD-RPI-PCB. 05/31/16 21:05:49.265 Debug: GPIO 18 set to 0. 05/31/16 21:05:49.365 Debug: GPIO 18 set to 1. 05/31/16 21:05:51.550 Debug: checkHealth returned ok. 05/31/16 21:06:01.650 Debug: checkHealth returned ok. 05/31/16 21:06:07.873 Debug: SSDP server: Binding to address: 192.168.178.36 05/31/16 21:06:07.873 Debug: Searching for SSDP devices ... 05/31/16 21:06:11.751 Debug: checkHealth returned ok. 05/31/16 21:06:15.146 UPnP Server: Debug: Discovery packet received from 239.255.255.250:1900 05/31/16 21:06:15.167 Debug: Sleeping 152ms before sending response. 05/31/16 21:06:15.319 UPnP Server: Debug: Sending discovery response packets to 239.255.255.250 on port 1900 05/31/16 21:06:15.419 UPnP Server: Debug: Sending notify packets. 05/31/16 21:06:19.366 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Error: No init packet received.

Habe die serielle Konsole ziemlich sicher abgeschaltet.
Der Error: No init packet received bleibt.

Bin ratlos

(Hardware: Raspberry 2, Raspbian Jessie lite, HM-MOD-RPI-PCB)

Moin docmic,

Schau doch bitte (auch wenn Du Dir sicher bist, die serielle Konsole abgeschaltet zu haben) in die /etc/inittab und /boot/cmdline.txt. Für mich sieht Deine Fehlermeldung so aus, daß homegear ein “anderes device” “anbindet” anstatt das Funkmodul.
Nur eine Idee.

Gruß,
shizzleslick

Hallo shizzleslick,

blöd halt, das das log ziemlich ausführlich ist, nur nirgendwo steht was der Grund des ein oder anderen Eintrags ist. Ich werd wohl mal Sourcode anschauen…

Mein raspbian jessie hat keine inittab, deshalb habe ich versucht die Konsole mit

[code]systemctl stop serial-getty@ttyAMA0.service[code]
abzustellen.

In der Tat war aber in der cmdline.txt noch ein

und dmesg vermeldet auch

entferne ich den console=tty Eintrag ändert das aber leider garnichts…
dmesg zeigt nach wie vor dasselbe und homegear wirft “No init packet received”

…oder muss ich wenn ich keine Konsole will hier das /dev/nul angeben??

und noch ein paar “Forschungsergebnisse”

  1. mit dem “original” homematic Image läuft das HM-MOD-RPI-PCB einwandfrei auf dem Raspberry 2

  2. Sourcecode
    da sieht die Stelle die den “init packet” Fehler wirft so aus, also ob das System am GPIO 18 einen Impuls produziert und dann wohl auf eine Art “Hallo ich bin da Paket” vom HM-MOD-RPI-PCB Controller wartet.

Und das kommt nicht.
2 mögliche Ursachen
a) der GPIO 18 macht den Impuls nicht - das checke ich am Wochenende mal mit einem Oszi
b) der Controller antwortet, der Rapsi kriegt das aber auf der ttyAMA0 nicht mit - das müsste man auch mit dem Oszi sehen

Kann ich auf dem Raspi irgendwie raufinder “wer” sonst noch auf der ttyAMA0 sitzt?
Wenn ich mincom draufsetze läuft das ohne zu murren…

so…
Hier also was das Oszilloskop sagt.


Kanal 1 ist der GPIO18 der zum HM-MOD geht (Pin 12).

  • der macht brav ca. alle 30 Sekunden einen low-Impuls

Kanal 2 ist RX-UART vom Raspberry (Pin 10) - also das was der Raspberry vom HM-MOD hört

  • da ist tatsächlich eine saubere Antwort in Form eines 1500 µs langen seriellen Pakets

…das ist mit Sicherheit das ominöse “init paket” auf das homegear wartet

…aber dort nicht ankommt, weil irgendwas mit dem ttyAMA0 klemmt.

Aber was, und wie finde ich das raus???

. . . kann den hier niemand helfen?

Das wäre perspektivisch für alle, eine sehr gute Sache wenn man dieses Modul anbinden könnte.

Gruß Achim

Nachdem definitv der ttyAMA0 bei mir nicht funktioniert hat, heute nochmal intensiv geforscht.

DIE LÖSUNG liegt in der Datei
/boot/config.txt

da muss der UART enabled werden:

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

…und schon geht homegear auf dem Raspberry 2 unter raspbian jessie mit HM-MOD-RPI-PCB

Hallo docmin,

ich wollte mich bei Dir erkundigen, wie so deine ersten Erfahrungen sind mit Funkmodul.

(Ich würde sehr gern auf diesen umschwenken)

Gruß Achim

Hallo Achim,

mittlerweile funktionert es ganz gut, wobei ich es derzeit - obwohl es ja jetzt auch mit homegear funktionieren würde - der Einfachheit halber mit dem homematic-raspberry image betreibe.
Reichweite ist sogar aus dem Stahlbetonkeller (am Fenster) ganz OK. Wenn ich aus dem “Prototypenstadium” raus bin, bau ich eh alles in einen kleinen Kasten, den ich an eine Ethernetsteckdose im EG hänge, dann ist die Reichweite ohnehin kein Problem mehr.

Spiele derzeit mit einem Selbsbau CUL433 (funktioniert) und einem CUL868 (funktioniert nicht) mit dem Ziel an die Wetterstationsdaten einer CRESTA zu kommen.

Viele Grüße,
Michael

Hallo Michael,

vielen Dank für die Info, dann kann man ja den Schritt mal wagen.
Ich habe im Netz immer wieder verlauten hören, das der link zum Image 3CQ seitig nicht immer funktioniert,
weil viele User damit Problem hatten. Scheinbar hast Du ein Image was auch lauffähig ist :wink:

Würde mich freuen wenn ich eventuell nochmals auf Dich zukommen könnte, bezüglich des img, falls sich
das auch bei mir sich bestätigen würde.

Vielen Dank an der Stelle erst mal für deine Informationen.

Gruß Achim

Ich nutze das Funkmodul seit etwa 2 Monaten ohne Probleme.
Hatte Anfangs das Problem, das der UART nicht frei geschaltet war, lies sich aber schnell lösen.
Hab ans Funkmodul eine andere Antenne ran, Reichweite ist jetzt gut!
Viele Grüße
Horst