Hallo Zusammen,
ich habe eine Frage bezüglich dem FHEM2FHEM Modul: Bei mir laufen auf 2 Raspberry PI (Ein 2er und ein 3er) FHEM, Eins ist das Hauptsystem (3er) und das zweite ist an 2 Stromzähler und einem Wasserzähler (via GPIO Ports) angeschlossen (2er).
Ich habe auf dem Hauptraspi wie folgt definiert:
define FHEM2FHEM FHEM2FHEM 192.168.178.xx:7071 LOG:HeizstromVerbrauch|HeizstromVerbrauchGesamt|StromVerbrauchGesamt|StromverbrauchHeute|WasserVerbrauch|WasserVerbrauchHeute
define executeRemote notify forwardRemote {fhem "$EVENT"}
und auf dem beiden Raspis
define forwardRemonte dummy
Die Geräte wurden auch soweit alle für beide Raspis angelegt und die Übertragung der 6 Geräte vom "Zähler-Raspi" auf die Hauptinstanz funktioniert soweit. Mir ist jedoch aufgefallen, wenn der Wärmepumpenzähler voll durchdrückt (5-6 kw/h bei 2 imp/w und somit ca. 3-5 Impulse pro Sekunde), dass dann die anderen Werte mit Zeitverzug bis zu mehreren Minuten ankommen.
Die 6 Zähler werden aus drei HourCounter Definitionen auf den GPIO Ports ausgelesen und in jeweils einen dummy geschrieben, welcher jeweils in beiden FHEMs angelegt ist.
Ich habe es auch bereits ausprobiert alle 6 Werte in einen Dummy zu schreiben und nur diesen via FHEM2FHEM zu übertragen:
define FHEM2FHEM FHEM2FHEM 192.168.178.xx:7071 LOG:Zählerübertrag
Dies führt jedoch dazu, dass beide Systeme extrem träge werden und kein flüssiges Arbeiten mehr möglich ist. Also habe ich wieder auf die 6 einzelnen dummys umgestellt. 6 FHEM2FHEM Verbindungen, für jeden dummy eins macht dass System ebenfalls komplett lahm.
Deshalb meine Frage: ist das define so sinnvoll oder gibt es Verbesserungsmöglichkeiten um die Werte in Echtzeit zu übertragen und die Performance hoch zu halten. das Reading ist bei allen 6 dummys immer state. Macht evtl. Eingrenzung auf state Sinn? Wenn ja wie mache ich das in dem Fall am sinnvollsten?
Kann es sein dass der ForwardRemote dummy auf der Hauptinstanz zu den Verzögerungen und den Performanceeinbruch führt? Dieser ist noch von der Grundeinstellung uns ist von mir nicht verändert worden.
Für eure Anregungen und Hilfe schon mal vielen Dank.
Viele Grüße
Florian
Hi Florian,
ich glaube Dein Konstrukt stammt noch aus alten Zeiten.
Den dummy und das notify bauchst Du nicht.
Sagen wir in dem einen System hast Du Zaehler1 als Gerät mit ein paar Readings. Wenn Du dann LOG:Zaehler1 als Filter nimmst und im anderen einfach einen dummy Zaehler1 definierst werden exakt alle readings übertragen.
Ich würde auch noch event-on-change-reading empfehlen.
Vielleicht löst das Dein Performance Problem
Gruß Otto
Danke dir Otto für den Tipp, habe mal die Forwardremote dummys gelöscht und die event on change attribute gesetzt. Sieht auf den ersten Blick alles Gut aus. Ich probiers mal ein Paar Tage aus wie es sich verhält.