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)