fheminfo send: timeout beim Senden

Begonnen von betateilchen, 29 Mai 2026, 20:45:59

Vorheriges Thema - Nächstes Thema

betateilchen

2026.05.29 20:39:17 4: fheminfo send (nonblocking): {...}
2026.05.29 20:39:17 4: IP: fhem.de -> [2a01:4f8:221:1b5a::b2]
2026.05.29 20:39:21 1: fheminfo send: Server ERROR: connect to https://fhem.de:443 timed out

Das Problem tritt nur bei einer meiner drei FHEM-Instanzen auf.
Eine der beiden anderen Instanzen läuft hier im gleichen Netzwerk und funktioniert, ein generelles Netzwerkproblem schließe ich deshalb aus.

Hat jemand einen Tipp, wie ich das Problem weiter eingrenzen kann? Bauchgefühl sagt mir, ich könnte mal wieder ein IPv6 Problem haben. Denn die andere Instanz, die hier im Netzwerk funktioniert, verwendet eine IPv4 Adresse von fhem.de

2026.05.29 16:18:30.998 4: fheminfo send (nonblocking): {...}
2026.05.29 16:18:30.999 4: IP: fhem.de -> 188.40.131.57
2026.05.29 16:18:31.510 4: https://fhem.de/stats/statistics2.cgi: HTTP response code 200
2026.05.29 16:18:31.510 4: fheminfo send: Server RESPONSE: ==> ok
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sidey

Wie ist denn Instanz 1  und wie Instanz 2 an dein Netzwerk angebunden?
Haben die Instanzen ggf. mehrere Netzwerkadapter?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp

betateilchen

  • Beide Instanzen laufen als Proxmox Container.
  • Die nicht funktionierende Instanz hat das globale Attribut useInet6 gesetzt, die andere Instanz nicht.
  • Die "nicht funktionierende" Instanz ist meine Produktivinstanz, auf der ansonsten netzwerktechnisch alle Verbindungen funktionieren, nur das fheminfo send klappt nicht.

Funktionierende Instanz:

udo@fhem-sip:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24:11:ba:0b:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.123.219/24 brd 192.168.123.255 scope global dynamic eth0
       valid_lft 79650sec preferred_lft 79650sec
    inet6 fddc:7b04:1a06:0:be24:11ff:feba:b06/64 scope global dynamic mngtmpaddr proto kernel_ra
       valid_lft 7200sec preferred_lft 3600sec
    inet6 2002:5510:9940:0:be24:11ff:feba:b06/64 scope global dynamic mngtmpaddr proto kernel_ra
       valid_lft 7199sec preferred_lft 3599sec
    inet6 fe80::be24:11ff:feba:b06/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

Nicht funktionierende Instanz:

udo@fhem:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24:11:46:b6:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.123.111/24 brd 192.168.123.255 scope global dynamic eth0
       valid_lft 75883sec preferred_lft 75883sec
    inet6 fddc:7b04:1a06:0:be24:11ff:fe46:b6a4/64 scope global dynamic mngtmpaddr proto kernel_ra
       valid_lft 6643sec preferred_lft 3043sec
    inet6 2002:5510:9940:0:be24:11ff:fe46:b6a4/64 scope global dynamic mngtmpaddr proto kernel_ra
       valid_lft 6642sec preferred_lft 3042sec
    inet6 fe80::be24:11ff:fe46:b6a4/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 29 Mai 2026, 21:07:44
  • Die nicht funktionierende Instanz hat das globale Attribut useInet6 gesetzt, die andere Instanz nicht.

Wenn ich das Attribut entferne, funktioniert das Senden auch auf der Produktivinstanz:

2026.05.29 21:09:31 4: fheminfo send (nonblocking): {...}
2026.05.29 21:09:31 4: IP: fhem.de -> 188.40.131.57
2026.05.29 21:09:32 4: https://fhem.de/stats/statistics2.cgi: HTTP response code 200
2026.05.29 21:09:32 4: fheminfo send: Server RESPONSE: ==> ok

Dann funktionieren allerdings viele andere Dinge nicht mehr...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sidey

Du hast sehr wahrscheinlich ein IP V6 Problem.

Könnte das Problem außerhalb des Containers liegen? Vielleicht eine Firewall?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp

betateilchen

#5
Außerhalb des Containers: könnte sein, vielleicht sogar außerhalb meines Einflußbereichs?

Meine FHEM Installation holt sich updates über svn, und svn.fhem.de wird problemlos auch bei gesetztem useInet6 erreicht.

Edit: inzwischen wurde das Problem auch von anderen Usern bestätigt, wenn sie IPv6 verwenden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

Ich beteilige mich mal hier und schaue später nach, ob IPv6 in der fhem.de Umgebung richtig behandelt wird.
Ich muss noch rausfinden wo fheminfo wirklich zugreift, habe ich irgendwo schon mal notiert ;)

In letzter Zeit wurde aber nichts geändert, wenn es an der fhem Umgebung liegt sollte das Problem schon lange existieren.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle

aktives Mitglied des FHEM e.V. (Technik)

Sidey

Probiert doch mal folgenden Befehl in deiner Instanz:

curl -6 --connect-timeout 10 -v --trace-time --trace-ascii - 'https://fhem.de/stats/statistics2.cgi'
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp

betateilchen

#8
Zitat von: Otto123 am 30 Mai 2026, 09:54:44wenn es an der fhem Umgebung liegt sollte das Problem schon lange existieren.

Das kann durchaus sein, es ist mir aber gestern erst aufgefallen.

Zitat von: Sidey am 30 Mai 2026, 09:56:11Probiert doch mal folgenden Befehl in deiner Instanz:
curl -6 --connect-timeout 10 -v --trace-time --trace-ascii - 'https://fhem.de/stats/statistics2.cgi'

$ curl -6 --connect-timeout 10 -v --trace-time --trace-ascii - 'https://fhem.de/stats/statistics2.cgi'
Warning: --trace-ascii overrides an earlier trace/verbose option
10:24:32.803945 == Info: Host fhem.de:443 was resolved.
10:24:32.803982 == Info: IPv6: 2a01:4f8:221:1b5a::b2
10:24:32.803985 == Info: IPv4: (none)
10:24:32.804013 == Info:   Trying [2a01:4f8:221:1b5a::b2]:443...
10:24:42.796647 == Info: Connection timed out after 10002 milliseconds
10:24:42.796680 == Info: closing connection #0

Edit: auf der funktionierenden Instanz hier im Netzwerk sieht das übrigens identisch aus:

# curl -6 --connect-timeout 10 -v --trace-time --trace-ascii - 'https://fhem.de/stats/statistics2.cgi'
Warning: --trace-ascii overrides an earlier trace/verbose option
10:31:01.291763 == Info: Host fhem.de:443 was resolved.
10:31:01.291795 == Info: IPv6: 2a01:4f8:221:1b5a::b2
10:31:01.291798 == Info: IPv4: (none)
10:31:01.291827 == Info:   Trying [2a01:4f8:221:1b5a::b2]:443...
10:31:11.292928 == Info: Connection timed out after 10002 milliseconds
10:31:11.292963 == Info: closing connection #0

Edit 2: einen hab ich noch... FHEM auf einem Server bei AWS:

$ curl -6 --connect-timeout 10 -v --trace-time --trace-ascii - 'https://fhem.de/stats/statistics2.cgi'
Warning: --trace-ascii overrides an earlier trace/verbose option
10:34:48.534877 == Info:   Trying [2a01:4f8:221:1b5a::b2]:443...
10:34:48.559384 == Info: Connected to fhem.de (2a01:4f8:221:1b5a::b2) port 443 (#0)
10:34:48.561544 == Info: ALPN: offers h2,http/1.1
10:34:48.561796 => Send SSL data, 5 bytes (0x5)
10:34:48.561827 == Info: TLSv1.3 (OUT), TLS handshake, Client hello (1):
10:34:48.561835 => Send SSL data, 512 bytes (0x200)
10:34:48.599193 == Info:  CAfile: /etc/ssl/certs/ca-certificates.crt
10:34:48.599234 == Info:  CApath: /etc/ssl/certs
10:34:48.599284 <= Recv SSL data, 5 bytes (0x5)
10:34:48.599314 == Info: TLSv1.3 (IN), TLS handshake, Server hello (2):
10:34:48.599325 <= Recv SSL data, 122 bytes (0x7a)
10:34:48.599584 <= Recv SSL data, 5 bytes (0x5)
10:34:48.599604 <= Recv SSL data, 5 bytes (0x5)
10:34:48.599638 <= Recv SSL data, 1 bytes (0x1)
10:34:48.599674 == Info: TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
10:34:48.599703 <= Recv SSL data, 19 bytes (0x13)
10:34:48.599742 <= Recv SSL data, 5 bytes (0x5)
10:34:48.599776 <= Recv SSL data, 1 bytes (0x1)
10:34:48.599802 == Info: TLSv1.3 (IN), TLS handshake, Certificate (11):
10:34:48.599814 <= Recv SSL data, 2025 bytes (0x7e9)
10:34:48.602145 <= Recv SSL data, 5 bytes (0x5)
10:34:48.602188 <= Recv SSL data, 1 bytes (0x1)
10:34:48.602208 == Info: TLSv1.3 (IN), TLS handshake, CERT verify (15):
10:34:48.602220 <= Recv SSL data, 80 bytes (0x50)
10:34:48.602404 <= Recv SSL data, 5 bytes (0x5)
10:34:48.602430 <= Recv SSL data, 1 bytes (0x1)
10:34:48.602466 == Info: TLSv1.3 (IN), TLS handshake, Finished (20):
10:34:48.602477 <= Recv SSL data, 36 bytes (0x24)
10:34:48.602548 => Send SSL data, 5 bytes (0x5)
10:34:48.602564 == Info: TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
10:34:48.602576 => Send SSL data, 1 bytes (0x1)
10:34:48.602633 => Send SSL data, 5 bytes (0x5)
10:34:48.602645 => Send SSL data, 1 bytes (0x1)
10:34:48.602663 == Info: TLSv1.3 (OUT), TLS handshake, Finished (20):
10:34:48.602675 => Send SSL data, 36 bytes (0x24)
10:34:48.602750 == Info: SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
10:34:48.602765 == Info: ALPN: server accepted h2
10:34:48.602780 == Info: Server certificate:
10:34:48.602798 == Info:  subject: CN=fhem.de
10:34:48.602813 == Info:  start date: May 23 21:47:54 2026 GMT
10:34:48.602826 == Info:  expire date: Aug 21 21:47:53 2026 GMT
10:34:48.602847 == Info:  subjectAltName: host "fhem.de" matched cert's "fhem.de"
10:34:48.602867 == Info:  issuer: C=US; O=Let's Encrypt; CN=E8
10:34:48.602880 == Info:  SSL certificate verify ok.
10:34:48.602945 => Send SSL data, 5 bytes (0x5)
10:34:48.602959 => Send SSL data, 1 bytes (0x1)
10:34:48.602988 == Info: using HTTP/2
10:34:48.603032 == Info: h2h3 [:method: GET]
10:34:48.603044 == Info: h2h3 [:path: /stats/statistics2.cgi]
10:34:48.603055 == Info: h2h3 [:scheme: https]
10:34:48.603066 == Info: h2h3 [:authority: fhem.de]
10:34:48.603076 == Info: h2h3 [user-agent: curl/7.88.1]
10:34:48.603087 == Info: h2h3 [accept: */*]
10:34:48.603103 == Info: Using Stream ID: 1 (easy handle 0x55bb778c7470)
10:34:48.603164 => Send SSL data, 5 bytes (0x5)
10:34:48.603177 => Send SSL data, 1 bytes (0x1)
10:34:48.603203 => Send header, 90 bytes (0x5a)
0000: GET /stats/statistics2.cgi HTTP/2
0023: Host: fhem.de
0032: user-agent: curl/7.88.1
004b: accept: */*
0058:
10:34:48.627331 <= Recv SSL data, 5 bytes (0x5)
10:34:48.627412 <= Recv SSL data, 1 bytes (0x1)
10:34:48.627490 == Info: TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
10:34:48.627502 <= Recv SSL data, 57 bytes (0x39)
10:34:48.627580 <= Recv SSL data, 5 bytes (0x5)
10:34:48.627599 <= Recv SSL data, 1 bytes (0x1)
10:34:48.627620 == Info: TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
10:34:48.627632 <= Recv SSL data, 57 bytes (0x39)
10:34:48.627674 == Info: old SSL session ID is stale, removing
10:34:48.627713 <= Recv SSL data, 5 bytes (0x5)
10:34:48.627752 <= Recv SSL data, 1 bytes (0x1)
10:34:48.627789 => Send SSL data, 5 bytes (0x5)
10:34:48.627805 => Send SSL data, 1 bytes (0x1)
10:34:48.697751 <= Recv SSL data, 5 bytes (0x5)
10:34:48.697845 <= Recv SSL data, 1 bytes (0x1)
10:34:48.697919 <= Recv header, 13 bytes (0xd)
0000: HTTP/2 302
10:34:48.697940 <= Recv header, 37 bytes (0x25)
0000: date: Sat, 30 May 2026 08:34:49 GMT
10:34:48.697963 <= Recv header, 32 bytes (0x20)
0000: server: Apache/2.4.52 (Ubuntu)
10:34:48.697986 <= Recv header, 27 bytes (0x1b)
0000: location: statistics.html
10:34:48.698033 <= Recv header, 2 bytes (0x2)
0000:
10:34:48.699513 <= Recv SSL data, 5 bytes (0x5)
10:34:48.699566 <= Recv SSL data, 1 bytes (0x1)
10:34:48.699595 <= Recv data, 0 bytes (0x0)
10:34:48.699632 == Info: Connection #0 to host fhem.de left intact

(die umfangreichen ssl-payloads habe ich entfernt)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!