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
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
Hallo Otto,
wieso auf beiden Seiten? Wie meinst Du das?
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
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
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