HMUARTLGW: Modul für HomeMatic UART-Modul (RPi) und HomeMatic LAN Gateway

Begonnen von mgernoth, 11 Juni 2016, 20:10:46

Vorheriges Thema - Nächstes Thema

Homalix99

Hallo,

ich habe ein UART-Modul am Haupt RPi (RPi4), welches seit einem harten Reset des Pis nicht mehr in den Zustand "opened" bringen lässt.
Kurioserweise funktioniert die HW an einem Fhem-Slave (RPi3) einwandfrei.
Habe es auch schon mit einem anderen USB-Port versucht.
Log:
2025.10.21 18:59:20.653 3: Opening HMUSB1 device /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
2025.10.21 18:59:20.659 3: Setting HMUSB1 serial parameters to 115200,8,N,1
2025.10.21 18:59:20.664 3: HMUSB1 device opened
2025.10.21 18:59:21.261 3: HM_Interfaces_Monitoring: HMUSB1 hat State: disconnected
2025.10.21 18:59:21.455 1: /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 disconnected, waiting to reappear (HMUSB1)
2025.10.21 18:59:22.829 3: HM_Interfaces_Monitoring: HMUSB1 hat State: init
2025.10.21 18:59:24.204 3: HM_Interfaces_Monitoring: HMUSB1 hat State: disconnected
2025.10.21 19:08:00.174 3: Opening HMUSB1 device /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
2025.10.21 19:08:00.180 3: Setting HMUSB1 serial parameters to 115200,8,N,1
2025.10.21 19:08:00.186 3: HMUSB1 device opened
2025.10.21 19:08:01.629 4: HMUARTLGW HMUSB1 StartInit
2025.10.21 19:08:01.631 5: HMUARTLGW HMUSB1 send: 00 00
2025.10.21 19:08:01.632 5: HMUARTLGW HMUSB1 send: (8): fd00030001009e03
2025.10.21 19:08:01.632 5: DevIo_SimpleWrite HMUSB1: fd00030001009e03
2025.10.21 19:08:02.870 3: HM_Interfaces_Monitoring: HMUSB1 hat State: init
2025.10.21 19:08:02.879 5: HMUARTLGW HMUSB1 read raw (12): 1886660060fe9818667e1800
2025.10.21 19:08:04.634 1: HMUARTLGW HMUSB1 did not respond for the 1. time, resending
2025.10.21 19:08:04.635 5: HMUARTLGW HMUSB1 send: (8): fd00030001009e03
2025.10.21 19:08:04.636 5: DevIo_SimpleWrite HMUSB1: fd00030001009e03
2025.10.21 19:08:05.967 5: HMUARTLGW HMUSB1 read raw (14): 00740061002e0069006e006f00f7
2025.10.21 19:08:07.641 1: HMUARTLGW HMUSB1 did not respond for the 2. time, resending
2025.10.21 19:08:07.642 5: HMUARTLGW HMUSB1 send: (8): fd00030001009e03
2025.10.21 19:08:07.642 5: DevIo_SimpleWrite HMUSB1: fd00030001009e03
2025.10.21 19:08:09.046 5: HMUARTLGW HMUSB1 read raw (32): f90203f07902035300740061006e0064006100720064004600690072006d0061
2025.10.21 19:08:09.060 5: HMUARTLGW HMUSB1 read raw (32): f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f000102030405f7f06c7f7f0001010104
2025.10.21 19:08:09.070 5: HMUARTLGW HMUSB1 read raw (32): 08040e7f00010101040e7f00010101040e7f000101010308040e7f0001010103
2025.10.21 19:08:09.081 5: HMUARTLGW HMUSB1 read raw (32): 0a7f00010101020a7f00010101020a7f00010101020a7f00010101020a06017f
2025.10.21 19:08:10.647 1: HMUARTLGW HMUSB1 did not respond for the 3. time, resending
2025.10.21 19:08:10.647 5: HMUARTLGW HMUSB1 send: (8): fd00030001009e03
2025.10.21 19:08:10.648 5: DevIo_SimpleWrite HMUSB1: fd00030001009e03
2025.10.21 19:08:13.652 1: HMUARTLGW HMUSB1 did not respond after all, reopening
2025.10.21 19:08:13.653 4: HMUARTLGW HMUSB1 Reopen
2025.10.21 19:08:13.656 3: HMUSB1 device closed

List:
Internals:
   CFGFN     
   CNT        1
   Clients    :CUL_HM:
   DEF        /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@115200
   DevState   0
   DevType    UART
   DeviceName /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@115200
   FUUID      68f7bbe7-f33f-6b52-c864-9b396f43b78ca376
   LastOpen   1761066494.27045
   NAME       HMUSB1
   NOTIFYDEV  global
   NR         3303
   NTFY_ORDER 47-HMUSB1
   STATE      closed
   TYPE       HMUARTLGW
   XmitOpen   0
   eventCount 18
   model      HM-MOD-UART
   Helper:
     AckPending:
       1:
         cmd        00
         dst        0
         frame      FD00030001009E03
         time       1761066495.27369
     LastSendLen:
       3
     Log:
       IDs:
   MatchList:
     1:CUL_HM   ^A......................
   READINGS:
     2025-10-21 18:59:23   D-type          HM-MOD-UART
     2025-10-21 19:08:17   NOK_cnt         0
     2025-10-21 19:08:16   cond            disconnected
     2025-10-21 18:59:19   loadLvl         suspended
     2025-10-21 19:08:16   state           closed
Attributes:
   DbLogExclude .*
   Ena_AlarmMailSend 1
   group      HM_GW
   hmId       26EB13
   icon       cul_868
   room       CUL,System
   userattr   Ena_AlarmMailSend
   verbose    5
In der Linux-Shell:
lrwxrwxrwx 1 root root     13 21. Okt 18:13 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB1

Bin ziemlich ratlos, vorallem, weil das Teil nach Anstecken am Slave RPi sofort auf opened geht und funktioniert. Brauche das Teil jedoch am Haupt RPi.
Hat jemand vielleicht noch eine Idee?

Gruß

Alex
- RPI 4 fhem in Docker, 2 x Arduino Uno, HM-GW, HM-Dev. (Fensterkontakte, HK-Thermostate, div. Aktoren), JeeLink,
- GPIOs, HM-LAN, ESPs (MQTT2)
-Überwachung Fenster/Türen/Licht, HK-Thermostatregelung, Rollosteuerung, Überw. Betriebstemperaturen Heizung, Erfassung Gas/Wasser, PV-Anl., Wetter (WS1600)

Beta-User

(v.a.) falls die OS-Version neuer ist: check mal die Gruppenzugehörigkeit des Users fhem.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Homalix99

Hallo,

sollte passen:
root@RPI-Docker:~# id fhem
uid=6061(fhem) gid=6061(fhem) Gruppen=6061(fhem),997(gpio)
- RPI 4 fhem in Docker, 2 x Arduino Uno, HM-GW, HM-Dev. (Fensterkontakte, HK-Thermostate, div. Aktoren), JeeLink,
- GPIOs, HM-LAN, ESPs (MQTT2)
-Überwachung Fenster/Türen/Licht, HK-Thermostatregelung, Rollosteuerung, Überw. Betriebstemperaturen Heizung, Erfassung Gas/Wasser, PV-Anl., Wetter (WS1600)

Otto123

Zitat von: Homalix99 am 22 Oktober 2025, 18:39:32sollte passen:
nö!
eigentlich mindestens dialout für serielle Geräte (in bookworm war das dann plugdev für usb Geräte)
Aber das sieht nach (einem komischen) docker aus!?  :o  ::)
Bei  mir hat fhem auch im docker die Gruppenzugehörigkeit, habe aber lange kein "offizielles Image" mehr aktualisiert.

Bekommt man da sicher mit durchreichen auch hin, aber würde ich nicht so machen. da würde ich es über ser2net zum Host machen.

Der Fhem-Slave (RPi3) ist auch docker?
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

vbs

Besteht da vielleicht aus Gründen ein Parallelzugriff auf das Device noch von einem anderen Prozess?
Mach doch mal ein
lsof /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

Homalix99

Guten Morgen allerseits,
also ein lsof ergibt:
root@RPI-Docker:/dev/serial/by-id# lsof /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
Vestehe ich nicht.
- RPI 4 fhem in Docker, 2 x Arduino Uno, HM-GW, HM-Dev. (Fensterkontakte, HK-Thermostate, div. Aktoren), JeeLink,
- GPIOs, HM-LAN, ESPs (MQTT2)
-Überwachung Fenster/Türen/Licht, HK-Thermostatregelung, Rollosteuerung, Überw. Betriebstemperaturen Heizung, Erfassung Gas/Wasser, PV-Anl., Wetter (WS1600)

vbs

Ich glaube, das hat nix zu sagen. lsof scannt alle Dateisysteme und hat da bei diesem Gnome FS ein Problem. Das hat aber mMn erstmal nichts mit deinem Problem zu tun. Es sollte dann trotzdem eine Liste von Prozessen ausgegeben werden (war ja nur eine Warning). Wenn da keine Prozesse kommen, dann hat offenbar momentan kein Prozess das File geöffnet.

Otto123

mMn seid Ihr jetzt falsch abgebogen?
Es geht um docker? Wie ist denn der USB Stick an docker durchgereicht?
Was ist das für ein docker? die usergruppen von fhem sehen für mich befremdlich aus.
Allerdings scheint die die Abfrage id fhem auf dem dockerhost gemacht worden zu sein. Fragen über Fragen ...
Man könnte es richtigerweise in der FHEM Kommandozeile (Browser) so abfragen:{qx(id 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

vbs

Nach meinem Verständnis ist noch unklar, was die Ursache ist. Also dachte ich, es kann schon Sinn machen, verschiedene Ansätze zu verfolgen (low hanging fruits). Aber sorry, wollte dir nicht reinpfuschen.

Homalix99

1. Fhem-Slave läuft ohne Docker mit deb. 12.6
2. Master: Docker-host Deb. 11.5
Fhem-Container Def.
    fhem:
        image: fhem/fhem:latest
        restart: always
        container_name: fhem
        hostname: FHEM-Docker
        privileged: true
        ports:
            - "8083:8083"
            - "8084:8084"
            - "7072:7072"
            - "5987:5987"
            - "5060:5060"
            - "5070:5070"
            - "5080:5080"
            - "139:139"
            - "445:445"
            - "1000:1000"
            - "3033:3033"
            - "55054:55054"
            - "9522:9522"
            - "2000-2019:2000-2019"

        logging:
          options:
            max-size: 50m

        command: apt-get install -qqy --no-install-recommends cpanminus libsox-fmt-mp3 cifs-utils bluetooth libbluetooth-dev libio-socket-multicast-perl
        command: cpanm --notest Time::HiRes Math::Round FCGI DBI IO::Socket::INET Device::Firmata
        command: alias ll='ls -l'
        devices:
            - "/dev/ttyAMA0:/dev/ttyAMA0"
            - "/dev/ttyACM0:/dev/ttyACM0"
            - "/dev/ttyUSB0:/dev/ttyUSB0"
            - "/dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0:/dev/ttyUSB2"                                          # Firmata 2
            - "/dev/serial/by-id/usb-Arduino_Srl_Arduino_Uno_8543130363635110E0D2-if00:/dev/ttyACM0"                    # Firmata 1
#            - "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AI04PGKK-if00-port0:/dev/ttyUSB3"                             # JeeLink
            - "/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0:/dev/ttyUSB1"    # HMUSB1
            - "/dev/gpiomem:/dev/gpiomem"
            - "/dev/snd:/dev/snd"
        volumes:
            - ./fhem/core/:/opt/fhem/
            - /etc/localtime:/etc/localtime:ro
            - /sys/class/gpio:/sys/class/gpio
            - /sys/devices/platform/soc/fe200000.gpio:/sys/devices/platform/soc/fe200000.gpio
            - /dev/serial/by-id:/dev/serial/by-id
            - /mnt/Fritz.Nas:/mnt/Fritz.Nas:rw
 #           - vol-fritzbox:/mnt/Fritz.Nas:rw
            - ./fhem/pre-init.sh:/pre-init.sh
#           - ./fhem/pre-start.sh:/pre-start.sh
            - ./mariadb/DB_dumps:/var/backups

        networks:
             ipvlan_dc:
               ipv4_address: 192.168.2.20

        depends_on:

           - "mqtt"
           - "mysql"

#        entrypoint:
#            - /opt/fhem/start-fhem.sh

        environment:
            FHEM_UID: 6061
            FHEM_GID: 20
            GPIO_GID: 997
            TIMEOUT: 10
            RESTART: 1
            TZ: Europe/Berlin
           # APT_PKGS: "<Paketname>" # Nachinstallieren von software via APT-Paketen
           # CPAN_PKGS:"App::Name1 App::Name2" # Nachinstallieren von perl Paketen via cpan
            TELNETPORT: 7072
            LOGFILE: ./log/fhem-%Y-%m.log

fhem im dockerhost:
root@RPI-Docker:/fhem-docker# id fhem
uid=6061(fhem) gid=6061(fhem) Gruppen=6061(fhem),997(gpio)

fhem im Container:
root@FHEM-Docker:/opt/fhem# id fhem
uid=6061(fhem) gid=20(dialout) groups=20(dialout),5(tty),8(mail),29(audio),44(video),6001(bluetooth),6003(i2c),997(gpio)
- RPI 4 fhem in Docker, 2 x Arduino Uno, HM-GW, HM-Dev. (Fensterkontakte, HK-Thermostate, div. Aktoren), JeeLink,
- GPIOs, HM-LAN, ESPs (MQTT2)
-Überwachung Fenster/Türen/Licht, HK-Thermostatregelung, Rollosteuerung, Überw. Betriebstemperaturen Heizung, Erfassung Gas/Wasser, PV-Anl., Wetter (WS1600)

Otto123

Zitat von: Homalix99 am 23 Oktober 2025, 14:18:08fhem im dockerhost:
auf die Schnelle nachgefragt: wozu ist das? fhem läuft zweimal auf der Kiste?  :o
Zitat- "/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0:/dev/ttyUSB1"    # HMUSB1
Und wenn es wirklich so ist, dann musst Du im docker natürlich /dev/ttyUSB1 in der DEF verwenden  ;D
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

Homalix99

Sorry: Falsch ausgedrückt: Fhem läuft auschliesslich im Docker-Container (1 x)
Mit Fhem im Dockerhost meinte ich die Abfrage nach user fhem ausserhalb der Container also im host.
- RPI 4 fhem in Docker, 2 x Arduino Uno, HM-GW, HM-Dev. (Fensterkontakte, HK-Thermostate, div. Aktoren), JeeLink,
- GPIOs, HM-LAN, ESPs (MQTT2)
-Überwachung Fenster/Türen/Licht, HK-Thermostatregelung, Rollosteuerung, Überw. Betriebstemperaturen Heizung, Erfassung Gas/Wasser, PV-Anl., Wetter (WS1600)

Michi240281

Hallo zusammen,

ich brauche Eure Hilfe!

Mein Fhem läuft auf in einer VM auf dem NAS und für die HM Geräte benutze ich seit vielen Jahren einen HM-LAN-Adapter. Um vorbereitet zu sein für den Tag, wenn der HM LAN das zeitliche segnet, möchte ich einen RPi mit dem HM-MOD-RPI-PCB "vorbereiten", um diesen dann einfach gegen den HM LAN auszutauschen.

Nun habe ich mir einen RPi 3B+ und das Funk-Modul bestellt, gestern zusammengelötet (ja es ist korrekt verbunden ;-)), danach OpenCCU als Nachfolger von Raspberrymatic auf eine 64GB SD-Karte installiert. In der WebUI von OpenCCU erscheint das Modul als "HM-RCV-50 BidCoS-RF", wo ich schon nicht weiß, ob das so richtig ist.

Dann habe ich in FHEM ein HMUARTLGW Device angelegt:

Internals:
   CFGFN     
   CNT        1
   Clients    :CUL_HM:
   DEF        uart://192.168.188.110:2000
   DevState   0
   DevType    UART
   DeviceName 192.168.188.110:2000
   FUUID      691f899a-f33f-1a65-4534-79f4ac2af339158e
   FirmwareFile /opt/fhem/FHEM/firmware/coprocessor_update.eq3
   LastOpen   1763711504.51676
   NAME       myRemoteHmUART
   NEXT_OPEN  1763717209.75259
   NR         1388
   PARTIAL   
   STATE      opened
   TYPE       HMUARTLGW
   XmitOpen   0
   model      HM-MOD-UART
   Helper:
     AckPending:
       1:
         cmd        00
         dst        0
         frame      FD00030001009E03
         resend     3
         time       1763711505.51908
     LastSendLen:
       3
     Log:
       IDs:
   MatchList:
     1:CUL_HM   ^A......................
   READINGS:
     2025-11-20 23:36:16   D-type          HM-MOD-UART
     2025-11-21 08:51:59   cond            disconnected
     2025-11-20 22:35:22   loadLvl         suspended
     2025-11-21 10:25:49   state           opened
Attributes:
   hmId       23A6D7
   room       System

ohne sicher zu sein, ob das so richtig ist. Ich habe es mal so angenommen, weil es ja ein Netzwerk-Device sein muss, weil FHEM nicht auf dem RPi läuft auf dem sich OpenCCU befindet.

Nun ist der state auf "opened", jedoch wechselt der "cond" immer zwischen "init" und "disconnected" und der "loadlvl" steht immer auf "suspended". Ich habe mal testweise den HMLAN abgesteckt, dann reagiert kein Gerät mehr, also ist der RPi hier nicht wirklich "online".

Nun bin ich leider mit meinen Ideen am Ende, leider gibts dafür auch keine richtige Anleitung.

In der config.txt ist "enable_uart=1" und "dtoverlay=miniuart-bt" sowie "dtoverlay=rpi-rf-mod" vorhanden.

Wo ist der Fehler?

Bitte um Hilfe!!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Otto123

Hi,
Zitat von: Michi240281 am 21 November 2025, 10:32:55Wo ist der Fehler?
ich denke hier
Zitat von: Michi240281 am 21 November 2025, 10:32:55danach OpenCCU als Nachfolger von Raspberrymatic auf eine 64GB SD-Karte installiert.

Das hat nichts mit HMUARTLGW Device und CUL_HM zu tun. Du könntest es jetzt mit HMCCU in FHEM einbinden - völlig andere Landschaft.

Was du machen kannst: Raspberry Pi Os lite installieren, ser2net installieren und wie im Wiki beschrieben das Modul im Netz zur Verfügung stellen.
Hier wäre die richtige Anleitung. ;)
Auch für den generellen Betrieb von Modulen an der ttyAMA0 Schnittstelle gibt es eine richtige Anleitung.

Bitte beachten: Du hast jetzt wahrscheinlich schon eine viel zu neue Firmware installiert, Du musst das Modul also nochmal mit der richtigen Firmware versorgen!

Du kannst das Modul aber auch über einen USB-Serial Adapter an irgendeine Linuxkiste anstecken und analog mit ser2net vorgehen.

Gruß Otto
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