FHEM2FHEM: Verbindung togglet permanent nach Fhem-Slave shutdown restart

Begonnen von Homalix99, 28 November 2024, 22:38:23

Vorheriges Thema - Nächstes Thema

Homalix99

Hallo,

Nach einem Fhem Slave restart togglet die Verbindung zum Slave. Im Log mit (FHEM2FHEM: verbose 5) steht Folgendes, ausserdem wird das komplette Fhem blockiert.
2024.11.28 22:20:23.162 5: HttpUtils url=http://192.168.3.21:7072/ NonBlocking via http
2024.11.28 22:20:23.164 4: IP: 192.168.3.21 -> 192.168.3.21
2024.11.28 22:20:23.224 1: FHEM2FHEM 192.168.3.21:7072 reappeared (Fhemremote_1)
2024.11.28 22:20:23.238 1: 192.168.3.21:7072 disconnected, waiting to reappear
2024.11.28 22:20:28.252 5: HttpUtils url=http://192.168.3.21:7072/ NonBlocking via http
2024.11.28 22:20:28.252 4: IP: 192.168.3.21 -> 192.168.3.21
2024.11.28 22:20:28.376 1: Perfmon: possible freeze starting at 22:20:24, delay is 4.376
2024.11.28 22:20:29.703 1: FHEM2FHEM 192.168.3.21:7072 reappeared (Fhemremote_1)
2024.11.28 22:20:30.685 1: 192.168.3.21:7072 disconnected, waiting to reappear
2024.11.28 22:20:35.708 5: HttpUtils url=http://192.168.3.21:7072/ NonBlocking via http
2024.11.28 22:20:35.709 4: IP: 192.168.3.21 -> 192.168.3.21
2024.11.28 22:20:36.144 1: Perfmon: possible freeze starting at 22:20:31, delay is 5.144
2024.11.28 22:20:36.805 1: FHEM2FHEM 192.168.3.21:7072 reappeared (Fhemremote_1)
2024.11.28 22:20:37.387 1: 192.168.3.21:7072 disconnected, waiting to reappear
....
Beide RPIs sind im gleichen Netzwerk, Ping (ping -i 1 192.168.3.21) ist ok.
Damit fhem auf dem Master RPI wieder läuft hilft nur ein disable 1 des FHEM2FHEM Objekts.
Der Slave wurde früher schon öfter rebootet, das Fehlverhalten aber nicht wissentlich auftretreten ist, kann es mit dem Anlegen einer 2. Slave Instanz zu tun haben?

Hier las List:
Internals:
   DEF        192.168.3.21:7072 LOG:.* 1sP4Tn
   FUUID      5cdeb683-f33f-5615-10bd-eaecf20d4583e034
   Host       192.168.3.21:7072
   NAME       Fhemremote_1
   NR         1990
   PARTIAL   
   STATE      disconnected
   TYPE       FHEM2FHEM
   eventCount 73
   informType LOG
   portpassword ******
   regexp     .*
Attributes:
   DbLogExclude .*
   comment    FHEM2FHEM-Objekt zur Verbindung mit dem Fhem-Slave1.
Modus: LOG
   disable    0
   group      Fhemremote
   room       System
   verbose    5


2. Slave:
Internals:
   CFGFN     
   DEF        192.168.3.17:7072 LOG:.* 1sP4Tn
   FD         50
   FUUID      673e449c-f33f-6b52-f3c5-2cbaa3df905424e2
   Host       192.168.3.17:7072
   NAME       Fhemremote_2
   NR         3106
   PARTIAL   
   STATE      connected
   TYPE       FHEM2FHEM
   eventCount 52
   informType LOG
   portpassword 1sP4Tn
   regexp     .*
Attributes:
   DbLogExclude .*
   addStateEvent 1
   comment    FHEM2FHEM-Objekt zur Verbindung mit dem 2. Fhem-Slave.
Modus: LOG
   disable    0
   group      Fhemremote
   keepaliveInterval 10
   room       System
   verbose    0
- 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

Hi,

dieses Regexp LOG:.* auf beiden Seiten ist im Winter gut zum Heizen. ;) sprich: es erzeugt eine sinnlose Schleife die beide Seiten mit ihrer Leistungsgrenze auslastet.

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

Homalix99

- 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

Hallo Homalix,

steht doch in deiner Definition!? Du schickst damit alle Events von A nach B und wieder Retour von B nach A
Du bezeichnest das zweite System als Slave - ist es nicht? Du hast es auch zum "Master" gemacht?

Oder ich verstehe es nicht/falsch, dann male bitte ein komplettes Bild. Mit IP Adressen, FHEM2FHEM Verbindungen, Telnetport Definitionen.

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

Homalix99

Hallo Otto,
anbei ein Überblick meiner "Konstruktion":
Heimnetz: 192.168.3.0/24
 Fhem-Master in Docker-Container, Docker mit L3-Routing und statisches Routing in FB zwischen 192.168.3.0/24 und 192.168.2.0/24:
Master: IP: 192.168.2.20
Hier zwei verschiedene Slaves mittels F2F definiert;
Slave 1:
Internals:
   DEF        192.168.3.21:7072 LOG:Fhemremote_1_HB.* 1sP4Tn
   FUUID      5cdeb683-f33f-5615-10bd-eaecf20d4583e034
   Host       192.168.3.21:7072
   NAME       Fhemremote_1
   NR         1990
   PARTIAL   
   STATE      disconnected
   TYPE       FHEM2FHEM
   eventCount 133
   informType LOG
   portpassword *****
   regexp     .*
Attributes:
   DbLogExclude .*
   addStateEvent 1
   comment    FHEM2FHEM-Objekt zur Verbindung mit dem Fhem-Slave 1 im Waschraum.
Anbindung EM (SMA)
Modus: LOG
   disable    0
   group      Fhemremote
   keepaliveInterval 10
   room       System
   verbose    5

Slave 2:
Internals:
   CFGFN     
   DEF        192.168.3.17:7072 LOG:.* 1sP4Tn
   FD         40
   FUUID      673e449c-f33f-6b52-f3c5-2cbaa3df905424e2
   Host       192.168.3.17:7072
   NAME       Fhemremote_2
   NR         3106
   PARTIAL   
   STATE      connected
   TYPE       FHEM2FHEM
   eventCount 56
   informType LOG
   portpassword *****
   regexp     .*
Attributes:
   DbLogExclude .*
   addStateEvent 1
   comment    FHEM2FHEM-Objekt zur Verbindung mit dem 2. Fhem-Slave.
Modus: LOG
   disable    0
   group      Fhemremote
   keepaliveInterval 10
   room       System
   verbose    0

Ein list TYPE=FHEM2FHEM ergibt genau diese zwei Def,
Fhemremote_1
Fhemremote_2

Telnetport auf Master:
Internals:
   CONNECTS   187787
   DEF        7072 global
   FD         5
   FUUID      5cdeb67d-f33f-5615-6fdd-af27494b0eadb52e
   NAME       telnetPort
   NR         31
   PORT       7072
   STATE      Initialized
   TYPE       telnet
   READINGS:
     2024-11-05 10:48:00   state           Initialized
Attributes:
   DbLogExclude .*
   room       System

allowed TelnetPort auf Master:
Internals:
   FUUID      5cdeb67d-f33f-5615-7e58-bdd8e3a913750711
   NAME       allowed_telnetPort
   NR         33
   STATE      validFor:telnetPort
   TYPE       allowed
   READINGS:
     2024-11-05 10:48:00   state           validFor:telnetPort
Attributes:
   DbLogExclude .*
   comment    Fhem intern:
Fhem nutzt intern Telnet zur Verbindung mit geforkten Fhem-Prozessen und fhem-2-fhem.
   globalpassword *****
   room       System
   validFor   telnetPort


So nun zu den Definitionen der beiden Slaves:
Gleich vorweg: Dort sind keine FHEM2FHEM Objekte definert. Die Daten sollen nur unidirektional von den Slaves zum Master gelangen.

Slave 1:
IP: 192.168.3.21
Auf dem Slave 1 ist vorwiegend ein Dummy definiert,
defmod Fhemremote_1_HB dummy
attr Fhemremote_1_HB alias Systemzeit
attr Fhemremote_1_HB comment Dummy enthält die minutengenaue Uhrzeit des Fhem-Slaves 1
attr Fhemremote_1_HB group Allgemein
attr Fhemremote_1_HB icon time_clock
attr Fhemremote_1_HB room System
attr Fhemremote_1_HB sortby 7

setstate Fhemremote_1_HB 2024-11-29 19:11:56
setstate Fhemremote_1_HB 2024-11-29 19:11:56 state 2024-11-29 19:11:56
welcher die aktuelle Systemzeit vom at
defmod at_fp_time at +*00:00:10 { \
my $fp_time = strftime('%Y-%m-%d %H:%M:%S', localtime);; # aktuelle Uhrzeit holen\
fhem ("set Fhemremote_1_HB $fp_time");; # und in Dummy für die Fhem-Systemzeit aktualisieren\
}
attr at_fp_time comment Alle 10 Sekunden wird die aktuelle Uhrzeit ermittelt und in die Dummy-Variable Fhemremote_1_HB geschrieben.
attr at_fp_time disable 0
attr at_fp_time event-on-change-reading undef
attr at_fp_time group Steuerung
attr at_fp_time icon clock
attr at_fp_time room System
attr at_fp_time verbose 4
bekommt.

Hier noch die Telnet-Def. auf dem Slave 1:

Internals:
   CONNECTS   69
   DEF        7072 global
   FD         8
   FUUID      66b4e81f-f33f-3e5d-fff9-4ff0d2b02d55254e
   NAME       telnetPort
   NR         48
   PORT       7072
   STATE      Initialized
   TYPE       telnet
   READINGS:
     2024-11-28 21:37:15   state           Initialized
Attributes:
   room       System

und allowed TelnetPort Def.
Internals:
   FUUID      66b4f32a-f33f-3e5d-6025-05da0f0d19ed8165
   NAME       allowed_telnetPort
   NR         49
   STATE      validFor:telnetPort
   TYPE       allowed
   READINGS:
     2024-11-28 21:37:15   state           validFor:telnetPort
Attributes:
   globalpassword *****
   password   *****
   room       System
   validFor   telnetPort

Der Slave 1 macht jetzt die Probleme, seit Slave 2 dazugekommen ist.

Slave 2:
IP: 192.168.3.17

Auch auf dem Slave 2 sind keine FHEM2FHEM Objekte definert.
Auf dem Slave 1 ist auch ein Heartbeat Dummy definiert, sowie EnOcean GW

Hier noch die Telnet-Def. des Slave 2:

Internals:
   CONNECTS   2606
   DEF        7072 global
   FD         9
   FUUID      673e444e-f33f-3e5d-ad53-5a30e325482b6804
   NAME       telnetPort
   NR         51
   PORT       7072
   STATE      Initialized
   TYPE       telnet
   READINGS:
     2024-11-29 12:11:11   state           Initialized
Attributes:
   room       System

und allowed TelnetPort Def.

Internals:
   FUUID      673e421e-f33f-3e5d-0dc7-80e0abfc6106d45f
   NAME       allowed_telnetPort
   NR         50
   STATE      validFor:telnetPort
   TYPE       allowed
   READINGS:
     2024-11-29 12:11:11   state           validFor:telnetPort
Attributes:
   globalpassword *****
   password   *****
   room       System
   validFor   telnetPort

- 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

ok jetzt verstanden, vergiss meine Antwort aus #1 :)

Die Blockaden
ZitatPerfmon: possible freeze starting at 22:20:31, delay is 5.144
könnten zu den Abbruch führen. Warum das aber auftritt wenn der 2. Pi läuft?  :o
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