Umstellung von HMLAN auf HM-MOD-RPI-PCB

Begonnen von fgam, 13 März 2025, 20:36:23

Vorheriges Thema - Nächstes Thema

fgam

list myHmUART

gibt

Save config
Bib
CUL_HM
Esszi
Kueche
Unsorted
Wozi
fewo_SZ
fewo_Wozi
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   CFGFN      /opt/fhem/rolladen.cfg
   CNT        1
   Clients    :CUL_HM:
   DEF        /dev/ttyAMA0
   DevState   1
   DevType    UART
   DeviceName /dev/ttyAMA0@115200
   FD         5
   FUUID      67d467d1-f33f-e901-dd2b-b36f974b4950ce43
   LastOpen   1742068220.73415
   NAME       myHmUART
   NOTIFYDEV  global
   NR         48
   NTFY_ORDER 50-myHmUART
   PARTIAL    040e0401009e01
   STATE      opened
   TYPE       HMUARTLGW
   XmitOpen   0
   model      HM-MOD-UART
   Helper:
     AckPending:
       1:
         cmd        00
         dst        0
         frame      FD00030001009E03
         resend     3
         time       1742068221.73653
     LastSendLen:
       3
     Log:
       IDs:
   MatchList:
     1:CUL_HM   ^A......................
   PeerQueue:
     HASH(0xfb15a8)
     HASH(0x2405728)
     HASH(0x240b3a0)
     HASH(0x2414058)
     HASH(0x2416460)
     HASH(0x2416b50)
     HASH(0x241a350)
     HASH(0x241aa58)
     HASH(0x241c850)
     HASH(0x241cf88)
     HASH(0x241e570)
     HASH(0x241eca8)
     HASH(0x2422230)
     HASH(0x2422968)
     HASH(0x2423148)
     HASH(0x24259b8)
     HASH(0x24286a8)
     HASH(0x242eae0)
     HASH(0x1ac1760)
     HASH(0x227cee0)
     HASH(0x2360d20)
     HASH(0x23610e0)
     HASH(0x2360840)
     HASH(0x21678a8)
     HASH(0x21830b8)
     HASH(0x21830d0)
     HASH(0x21827e8)
     HASH(0x21825a8)
     HASH(0x232d938)
     HASH(0x235bc28)
     HASH(0x22d2ac8)
     HASH(0x22df130)
     HASH(0x21824a0)
     HASH(0x21683d0)
     HASH(0x21795b8)
     HASH(0x1ffa2d0)
   Peers:
     0589F6     pending
     3CBCFC     pending
     3CBE05     pending
     469587     pending
     46A553     pending
     46FC75     pending
     47A5D5     pending
     4915C1     pending
     4915E9     pending
     4915FF     pending
     491608     pending
     49164F     pending
     4934D2     pending
     493570     pending
     49DA4B     pending
     503383     pending
     52935C     pending
     529493     pending
   READINGS:
     2025-03-15 06:43:44   D-type          HM-MOD-UART
     2025-03-15 20:50:21   cond            init
     2025-03-15 06:43:44   loadLvl         suspended
     2025-03-15 20:50:20   state           opened
   helper:
Attributes:
   hmId       434343



Otto123

Das Modul hat noch gar nicht mit FHEM gesprochen. Das bedeutet:
  • das Modul funktioniert nicht (falsch zusammen gebaut?)
  • die Schnittstelle ist nicht richtig aktiviert.

Wenn zwei Dienste um die Schnittstelle "kämpfen" würden käme eine kurze Kommunikation zustande und es gäbe ein paar Readings.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

o.k., danke für die Analyse

Bei der Schnittsetlle hatten wir das ja geprüft:


  ls -l /dev/ttyAMA0
gibt :
  crw-rw---- 1 root dialout 204, 64 Mär 14 23:18 /dev/ttyAMA0

  ls -l /dev/serial*
gibt:
  lrwxrwxrwx 1 root root 5 Apr  2  2021 /dev/serial0 -> ttyS0
  lrwxrwxrwx 1 root root 7 Apr  2  2021 /dev/serial1 -> ttyAMA0

und gettyp1 ist noch aktiv, obwohl der service gestoppt war.
Ich weiß nicht, ob das ein Problem ist, jedenfalls sollte
es nach Anleitung ausgeschaltet werden.

Kann ich noch mehr herausfinden, ob de Schnittstelle
richtig konfiguriert ist?

Eine Sache ist mir in der Konfiguration aufgefallen:
Da steht:
# serielle Schnittstelle aktivieren und mit BT Schnittstelle tauschen
config="/boot/firmware/config.txt"
# für Raspberry Pi OS vor Bookworm
# config="/boot/config.txt"
# für Ubuntu
#config="/boot/firmware/usercfg.txt"

bash -c "cat <<EOF >> $config
enable_uart=1
dtoverlay=miniuart-bt
core_freq=250
EOF"


Ich habe die Einträge in /boot/config.txt gemacht,
weil es die Datei gab.
Nach Anleitung wäre
# für Ubuntu
#config="/boot/firmware/usercfg.txt"
zuständig, die gibt es aber bei mir nicht,
das Verzeichnis /firmware existiert gar nicht.





fgam

Die Kontakte und Lötstellen habe ich geprüft.
Auch gecheckt, dass GPIO aktiviert ist und die serielle Schnittstelle.

Otto123

Zitat von: fgam am 16 März 2025, 08:57:52und gettyp1 ist noch aktiv,
Der einzige Dienst der hier meiner Erfahrung nach eine Rolle spielen kann ist: serial-getty@ttyAMA0.service
Es gibt jede Menge Dienste die zwar ähnlich heißen, aber für irgendwas anderes zuständig sind. Der getty@tty1.service ist bei mir auch aktiv ;)

die Lage und der Name der config.txt ist leider abhängig von Zeit und Raum :) und wird in den Distributionen immer gern geändert.

Es sieht so aus, als ist die Schnittstelle richtig konfiguriert. Dann kann es nur am Modul liegen, keine Quatsch ich hatte es hier im Forum mehr als einmal, dass aus Versehen der Zusammenbau beider Hälften des Moduls spiegelverkehrt passiert war. Kannst Du bitte die Bilder im Wiki nochmal mit deinem Modul vergleichen?
https://wiki.fhem.de/wiki/HM-MOD-RPI-PCB_HomeMatic_Funkmodul_f%C3%BCr_Raspberry_Pi
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

sudo service serial-getty@ttyAMA0.service status
[sudo] password for lxuser:
● serial-getty@ttyAMA0.service.service - Serial Getty on ttyAMA0.service
   Loaded: loaded (/lib/systemd/system/serial-getty@.service; disabled; vendor p
   Active: inactive (dead)
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html


Das Modul habe ich nochmal geprüft.
Die Lötstellen sind alle soweit o.k.
Das Modul ist gemäß Foto richtig aufgesteckt.
Zwischen zwei Pins gibt es einen Durchgang,
da kann es aber vielleicht auch sein, dass die
über die Platine verbunden sind. Alle anderen
Pins haben keine Verbindung untereinander.

Ich habe es nach diesem Video gemacht:
  https://www.youtube.com/watch?v=xtzXsvOLa_Y

Auch habe ich den Ferrit-Ring in die Stromversorgung
eingebracht.
Zwischenzeitlich hatte ich auch das Netzteil
nochmal ausgetauscht, um Schwankungen auszuschließen.

Das sollte alles stabil sein.



Otto123

Da bin ich ratlos ...
Du kannst die ttyAMA0 im loopback testen, also einfach Modul abziehen, eine Verbindung zwischen GPIO14 und GPIO15 - Anschluss 8 und 10 (nebeneinander) schaffen, z.B. mit eine kurzen Kabel oder mit einem Jumper wie man ihn (früher) auf Motherboards findet.
Man kann das dann testen, z.B. hier https://forum.fhem.de/index.php?topic=138389.msg1314488#msg1314488
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

Das finde ich grossartig, vielen Dank!
Habe auch einen Widerstand (680 Ohm) dazwischengeschaltet.

python3 serial_uart-test_TxRx.py

gibt

Serial port /dev/ttyAMA0  ready for test :
loopback:  b''
Received incorrect data: b'' on serial part /dev/ttyAMA0 loopback

Serial port /dev/ttyS0  ready for test :
loopback:  b'Test serial port ...'
Received  20 bytes. Port /dev/ttyS0 is OK !

Error on /dev/ttyS1





fgam

Habe dies probierT:
sudo modprobe serial

Ergebnis:
modprobe: FATAL: Module serial not found in directory /lib/modules/4.4.38-v7+


fgam

sudo systemctl start serial-getty@ttyAMA0.service

gibt:

Failed to start serial-getty@ttyAMA0.service: Unit serial-getty@ttyAMA0.service is masked.

fgam

nach unmask und enable und start kriege ich:
sudo systemctl status serial-getty@ttyAMA0.service
● serial-getty@ttyAMA0.service - Serial Getty on ttyAMA0
   Loaded: loaded (/lib/systemd/system/serial-getty@.service; enabled; vendor preset: enabled)
   Active: active (running) since So 2025-03-16 15:13:15 CET; 4min 28s ago
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html
 Main PID: 3049 (agetty)
   CGroup: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyAMA0.service
           └─3049 /sbin/agetty --keep-baud 115200 38400 9600 ttyAMA0 vt220

Mär 16 15:13:15 raspi-fhem systemd[1]: Started Serial Getty on ttyAMA0.
Mär 16 15:16:10 raspi-fhem systemd[1]: Started Serial Getty on ttyAMA0.

Beim python-Test kommt dann:

Error on /dev/ttyAMA10

Error on /dev/ttyAMA0

Serial port /dev/ttyS0  ready for test :
loopback:  b'Test serial port ...'
Received  20 bytes. Port /dev/ttyS0 is OK !

Error on /dev/ttyS1



fgam

Bisher habe ich mich wohl strikt an:
  https://wiki.fhem.de/wiki/Raspberry_Pi#Verwendung_UART_f%C3%BCr_Zusatzmodule
gehalten.

Jetzt habe ich mal
  dtoverlay=uart0,txd0_pin=14,rxd0_pin=15
statt
  dtoverlay=miniuart-bt
probiert.

Das hat aber keinen Effekt.

fgam

Ich habe mal einen anderen Raspberry Pi (Version 4) genommen
und die SD-Karte da rein gesteckt.

uname -r

4.4.38-v7+

Dann:
sudo apt-get install raspberrypi-kernel-headers

Das ist durchgelaufen, bei Wiederholung kommt:
-> raspberrypi-kernel-headers ist schon die neueste Version (1.20161215-1~xenial1.0).


Und jetzt gibt

list myHmUART

das:

Internals:
   AssignedPeerCnt 18
   CFGFN      /opt/fhem/rolladen.cfg
   CNT        232
   Clients    :CUL_HM:
   DEF        /dev/ttyAMA0
   DEVCNT     231
   DevState   100
   DevType    UART
   DeviceName /dev/ttyAMA0@115200
   FD         5
   FUUID      67d467d1-f33f-e901-dd2b-b36f974b4950ce43
   LastOpen   1742153881.40088
   NAME       myHmUART
   NOTIFYDEV  global
   NR         48
   NTFY_ORDER 50-myHmUART
   PARTIAL   
   RAWMSG     04024B
   RSSI       -41
   STATE      opened
   TYPE       HMUARTLGW
   XmitOpen   1
   model      HM-MOD-UART
   msgLoadCurrent 38
   msgLoadHistory 6/32/-/-/-/-/-/-/-/-/-/-
   msgLoadHistoryAbs 38/32/0/-/-/-/-/-/-/-/-/-/-
   owner      434343
   Helper:
     CreditTimer 25
     FW         66049
     Initialized 1
     SendCnt    66
     AckPending:
       232:
         cmd        020000013AB00143434347A5D5010E
         dst        1
         frame      FD001101E8020000013AB00143434347A5D5010E1944
         time       1742154486.45331
     LastSendLen:
       3
       17
     Log:
       IDs:
     PendingCMD:
       HASH(0x2689518)
     RoundTrip:
       Delay      0.00295186042785645
     loadLvl:
       lastHistory 1742154483.89305
   MatchList:
     1:CUL_HM   ^A......................
   Peers:
     0589F6     +0589F6,00,00,00
     3CBCFC     +3CBCFC,00,00,00
     3CBE05     +3CBE05,00,00,00
     469587     +469587,00,00,00
     46A553     +46A553,00,00,00
     46FC75     +46FC75,00,00,00
     47A5D5     +47A5D5,00,00,00
     4915C1     +4915C1,00,00,00
     4915E9     +4915E9,00,00,00
     4915FF     +4915FF,00,00,00
     491608     +491608,00,00,00
     49164F     +49164F,00,00,00
     4934D2     +4934D2,00,00,00
     493570     +493570,00,00,00
     49DA4B     +49DA4B,00,00,00
     503383     +503383,00,00,00
     52935C     +52935C,00,00,00
     529493     +529493,00,00,00
   READINGS:
     2025-03-16 20:38:03   D-HMIdAssigned  434343
     2025-03-16 20:38:03   D-HMIdOriginal  7A3BFA
     2025-03-16 20:38:03   D-firmware      1.2.1 (outdated)
     2025-03-16 20:38:03   D-serialNr      TEQ2822193
     2025-03-16 20:37:59   D-type          HM-MOD-UART
     2025-03-16 20:38:03   cond            ok
     2025-03-16 20:48:05   load            38
     2025-03-16 20:38:03   loadLvl         low
     2025-03-16 20:38:01   state           opened
   helper:
Attributes:
   hmId       434343


Jetzt sagen die Rolladen-Aktoren  nicht mehr
  IOErr
sondern
  MISSING ACK




Otto123

korrekt wäre die Antwort:
ZitatSerial port /dev/ttyAMA0  ready for test :
Sended 20 byte
Received  20 bytes. Port /dev/ttyAMA0 is OK !

Ergo Deine Schnittstelle geht nicht / ist nicht korrekt konfiguriert / wird irgendwie gestört.
Deine weiteren Maßnahmen sind mMn nicht sinnvoll, bzw. liefern zu erwartende Ergebnisse. Den serial-getty@ttyAMA0.service haben wir ja extra deaktiviert. Wenn der läuft ist die ttyAM0 nicht zu gebrauchen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Zitat von: fgam am 16 März 2025, 21:03:382025-03-16 20:38:03  D-firmware      1.2.1 (outdated)
Jetzt läuft die Schnittstelle und Modul :)

Jetzt kannst Du Firmware update machen ;) bitte wie im Wiki beschrieben in FHEM
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz