Fhem2Fhem löst Datenflut aus... Hilfe..

Begonnen von gahle, 17 März 2015, 07:08:35

Vorheriges Thema - Nächstes Thema

gahle

Guten Morgen,
ich habe drei Pi's im Einsatz. Alle sind über Fhem2Fhem miteinander gekoppelt. Einer schaltet Licht und sendet auf 433Mhz an Steckdosen "Remote1".
Ausgelöst werden die Schaltaufträge auf meinem "Main-Pi". Der "Remote2"-Pi ist ebenfalls an mit im Boot und schaltet verschiedene Verbraucher an unserem Pool. Des weiteren misst er über GPIP4 mit Hilfe mehrerer Dallas 18B20-Sensoren die Wassertemperaturen. Diese Pi ist ebenfalls mit fhem2fhem an den Main-Pi angeschlossen. Nun das Problem...

Der Main-Pi ist mit Fhem2fhem mit dem RemotePi gekoppelt, damit ich die Messwerte der Temperatursensoren im Log des Main widerfinde..
#Sensordaten abholen von Remote1
define PoolSensoren FHEM2FHEM 192.168.178.35:7072 LOG:(GPIO4).*

#definde cloneDummy für VorlaufTemperaturSensor
define VorlaufTemperaturSensor cloneDummy GPIO4_DS18B20_000004108257 Temperatur
attr VorlaufTemperaturSensor fp_Pumpe2 674,269,1,
attr VorlaufTemperaturSensor room Sensoren
attr VorlaufTemperaturSensor stateFormat _state
define FileLog_VorlaufTemperaturSensor FileLog ./log/VorlaufTemperaturSensor-%Y-%m-%d.log VorlaufTemperaturSensor|VorlaufTemperaturSensor:temperature:.*

#definde cloneDummy für RuecklaufTemperaturSensor
define RuecklaufTemperaturSensor cloneDummy GPIO4_DS18B20_00000410779a Temperatur
attr RuecklaufTemperaturSensor fp_Pumpe2 438,461,1,
attr RuecklaufTemperaturSensor room Sensoren
attr RuecklaufTemperaturSensor stateFormat _state
define FileLog_RuecklaufTemperaturSensor FileLog ./log/RuecklaufTemperaturSensor-%Y-%m-%d.log RuecklaufTemperaturSensor


Der Remote2 ist ebenfalls an den Main-Pi gekoppelt, damit ich die Schaltaufträge mitbekomme..
# Define Temperature Sensor Dallas 18B20 on GPIO4
define RPi GPIO4 BUSMASTER
define GPIO4_DS18B20_00000410779a GPIO4 28-00000410779a
attr GPIO4_DS18B20_00000410779a model DS18B20
attr GPIO4_DS18B20_00000410779a pollingInterval 20
attr GPIO4_DS18B20_00000410779a room GPIO4

define FileLog_GPIO4_DS18B20_00000410779a FileLog ./log/GPIO4_DS18B20_00000410779a-%Y.log GPIO4_DS18B20_00000410779a
attr FileLog_GPIO4_DS18B20_00000410779a logtype text
attr FileLog_GPIO4_DS18B20_00000410779a room GPIO4

# define in welches Logfile gesehen wird
define MasterPi2 FHEM2FHEM 192.168.178.58:7072 LOG:.*(Filter|Uws|Schwallwasser)*
#attr MasterPi2 room MainServer
define MasterPi2Anwesend PRESENCE lan-ping 192.168.178.58 200
attr MasterPi2Anwesend room MainServer

# Fernschaltung der Filter
define Filter_an notify Filter:on {fhem ("set GPIO.5 on")}
define Filter_aus notify Filter:off {fhem ("set GPIO.5 off")}
define master_filter_on notify Filter:on set S_Filter on
define master_filter_off notify Filter:off set S_Filter off


Nun passiert folgendes... Erst mal geht alles... ich kann auf dem Main-Pi die Temperatursensoren darstellen, kann die GPios auf dem Remote2 schalten, alle GPIos auf dem Remote1. Nach mehreren Schaltvorgängen fängt der Remote2 plötzlich an uns überträgt mehrfach je Sekunde die Temperaturdaten. Ich kann das nicht stoppen und damit ist sehr schnell das Logfile gefüllt und vor allem die Netzwerklast ist enorm.

Ich verstehe nicht, warum Pi mit der unkontrollierten Übertragung anfängt. Ich sehe im Event-Monitor beider Pi's (Master und Remote2) diese massenhaften Datenübertragungen. Was löst das aus, ich komme nicht auf die Lösung.. Es scheint mit dem Schalten der GPios zusammenzuhängen, bis zu dahin verläuft alles wie programmiert.

Danke Euch.

Gruss
gahle

Joachim

Du hast Dir eine "never-come-back" Schleife gebaut.
Deine Pi's spielen mit einem oder mehreren Werten Pinpong.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

gahle

Hallo,
sehe ich genauso, aber wie lösen. Der eine Pi lauscht im Logfile und schaltet dann die GPIos, der anderen schreibt im Gegenzug in dessen Lofgile...
Wie das ganze aufbrechen? Es handelt sich immer im die gleichen Messwerte, es sind die Temperaturwerte....
Wo liegt die Endlosschleife ??

Gruß
gahle

Joachim

Du musst bei den FHEM2FHEM Definitionen so filtern, dass ein Event nicht zwischen den beiden (dreien) hin und hergeschoben wird.
also an der rot markierten Stelle so filtern, dass eine Rekursion vermieden wird.
define PoolSensoren FHEM2FHEM 192.168.178.35:7072 LOG:(GPIO4).*
Mach den Eventmonitor auf, dann siehst Du was passiert.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232