ch hab mir hier ne kleine Logik gebastelt die evtl. auch andere interessieren könnte und natürlich nehme ich auch sehr gern Verbesserungsvorschläge der Profis hier entgegen
.
Erst mal kurz zu dem was vorhanden ist. Ich hab hier mehrere Modbuszähler die verschiedene Teile unseres Hauses messen.
Diese schreiben im 10min Takt über das Modbusgateway von Masifi (Danke für die tolle Hardware) ihren Zählerstand auf den Bus.
Nun, was wollte ich erreichen?? Im ersten Step, wollte ich erst mal alle Zählerstände addieren, damit ich dann einen "Gesamtzählerstand" vom Haus habe.
Ich hätte diesen auch vom Wechselrichter auslesen können, aber hier müsste ich dann vom WR -> RS485 zu TCP Wandler -> EVCC -> Edomi -> Bus.
Und da mir hier einfach viel zu viele Zwischenstationen drin sind habe ich mich für die andere Variante entschieden.
Die Lösung hierfür ist übrigens nicht auf meinem Mist gewachsen, dafür hat mir mumpf im Logikmodul Thread den richtigen Anstoß gegeben (Danke nochmals).
Als nächstes kam ich gestern Abend auf die Idee, ich könnte doch auch den heutigen Verbrauch über eine Logik auswerten. Einmal zur Anzeige und mit diesem lassen sich später auch in Grafana die Charts einfacher darstellen. Möglich dass dies auch anders geht, aber ich hab noch nichts in der Richtung gefunden bzw. hin bekommen.
Aber hierzu später mehr.
Ich versuch das ganze mal mit Screenshots zu zeigen und schreib evtl. noch ein bisschen meine Gedanken dazu
.
Als erstes mal die Hauptseite der Logik, hier ist auch der erste Punkt bei dem ich mir nicht ganz sicher bin was das beste Verhalten bei "Logikauswertung" und "Logik-Trigger" ist.
Mein Gedanke zur "Logikauswertung" war das ich will das erst beide Eingänge ein Zählerstand anliegen haben sollen, bevor es weiter geht, da ansonsten am Schluss ein zu geringes Ergebnis ermittelt werden könnte, was ich nicht will und vermutlich auch später in Grafana komisch aussehen würde.
Den "Trigger" habe ich auf der Standardeinstellung belassen, hier wird die Häufigkeit einfach über die Zählerstände gesteuert, also alle 10min, evtl. 2mal, da ja 2 Eingänge belegt sind.
Screenshot 2023-08-11 211601.png
Die Eingänge sind recht unspektakulär, hier wird das bestehende KO vom Modbusgateway weiter verwendet (Auf richtigen Datentyp achten).
Screenshot 2023-08-11 211631.png
Eingang 2 the same:
Screenshot 2023-08-11 211650.png
Und beim Ausgang (ganz unten im letzten Block) kommt dann die Addition der beiden Eingangs-Werte ins Spiel:
Screenshot 2023-08-11 211705.png
Nun wird im Prinzip diese Logik so oft wiederholt, bis alle Zählerstände aufaddiert wurden, ich zeig grad mal noch von der letzten Logik den Eingang 1, der Rest ist ja immer gleich. Hier wird dann auch der Ausgang mit dem KO für den Gesamtzählerstand belegt. Ich empfehle hier erst einmal mit Zwischenergebnissen zu rechnen und diese interne Verknüpferei erst ganz am Schluss einzubauen. War auch ein Tipp von mumpf und war wirklich Gold wert
.
Hier wurde eben einfach das Ergebnis der Logik 11 wiederverwendet:
Screenshot 2023-08-11 214247.png
Nun kommen wir zur Logik für den heutigen Verbrauch. Als erstes habe ich mir überlegt wie ich zu diesem Wert komme.
Und im Prinzip ist es ja Zählerstand heute "minus" Zählerstand gestern.
Zählerstand heute ist ja kein Problem, dieser wird ja wie oben beschrieben regelmäßig ermittelt.
Also brauchen wir Zählerstand gestern und müssen diesen ~24h speichern.
Ich hab mich dafür entschieden den Wert um 23:55 zu schreiben. Ich hatte erst 00:00 aber nach ein bisschen überlegen kam ich zum Entschluss dass das evtl. suboptimal ist, wenn der Wert nicht vor oder = Mitternacht wieder von vorne anfängt zu zählen. Könnte dann in Grafana komisch aussehen, muss ich aber noch testen und spielt hier momentan auch nicht die große Rolle. Eure Meinungen oder Erfahrungen dazu sind mir herzlich Willkommen
.
So, nun haben wir die Schaltzeit, easy peasy über die integrierte Zeitschaltuhr. Nun müssen wir aber noch zu dem Zeitpunkt den aktuellen Zählerstand auf den Bus schreiben und speichern. Da kam mir die TOR Funktion in den Sinn. Also TOR für Zählerstand öffnet sich WENN Zeitschaltuhr GLEICH 1.
Abgesehen von der Schaltzeit blieb diese Logik auf Grundstellung. Hab ich nun nach mumpfs Empfehlung angepasst.
zeitschaltuhr Übersicht.png
Nun kommen wir zum TOR. Hier ist aber auch wirklich alles klasse beschrieben, es hat einfach so auf Anhieb geklappt. Wirklich genial, ich muss das einfach immer wieder Loben
.Hab ich ebenfalls nach mumpfs Empfehlung angepasst.
Hier wird eingestellt dass das Tor sofort nach öffnen wieder schließt und das beim öffnen der Eingangswert gesendet wird.
Also hier der Gesamtzählerstand. Und somit wird auch sichergestellt das dieser nur einmal während dem öffnen des TORs weitergeleitet wird.
Tor Übersicht.png
Der erste Eingang ist wie man sieht der Dateneingang, in unserem Fall der errechnete Zählerstand von der oberen Logik (Wieder auf DPT achten).
Screenshot 2023-08-11 215910.png
Am 2ten Eingang wird unserer Toreingang definiert. hier kommt das Signal der Zeitschaltuhr drauf (wieder intern verknüpft).
Screenshot 2023-08-11 215952.png
Und hier der Ausgang, sollte selbst erklärend sein.
Screenshot 2023-08-11 220027.png

Erst mal kurz zu dem was vorhanden ist. Ich hab hier mehrere Modbuszähler die verschiedene Teile unseres Hauses messen.
Diese schreiben im 10min Takt über das Modbusgateway von Masifi (Danke für die tolle Hardware) ihren Zählerstand auf den Bus.
Nun, was wollte ich erreichen?? Im ersten Step, wollte ich erst mal alle Zählerstände addieren, damit ich dann einen "Gesamtzählerstand" vom Haus habe.
Ich hätte diesen auch vom Wechselrichter auslesen können, aber hier müsste ich dann vom WR -> RS485 zu TCP Wandler -> EVCC -> Edomi -> Bus.
Und da mir hier einfach viel zu viele Zwischenstationen drin sind habe ich mich für die andere Variante entschieden.
Die Lösung hierfür ist übrigens nicht auf meinem Mist gewachsen, dafür hat mir mumpf im Logikmodul Thread den richtigen Anstoß gegeben (Danke nochmals).
Als nächstes kam ich gestern Abend auf die Idee, ich könnte doch auch den heutigen Verbrauch über eine Logik auswerten. Einmal zur Anzeige und mit diesem lassen sich später auch in Grafana die Charts einfacher darstellen. Möglich dass dies auch anders geht, aber ich hab noch nichts in der Richtung gefunden bzw. hin bekommen.
Aber hierzu später mehr.
Ich versuch das ganze mal mit Screenshots zu zeigen und schreib evtl. noch ein bisschen meine Gedanken dazu

Als erstes mal die Hauptseite der Logik, hier ist auch der erste Punkt bei dem ich mir nicht ganz sicher bin was das beste Verhalten bei "Logikauswertung" und "Logik-Trigger" ist.
Mein Gedanke zur "Logikauswertung" war das ich will das erst beide Eingänge ein Zählerstand anliegen haben sollen, bevor es weiter geht, da ansonsten am Schluss ein zu geringes Ergebnis ermittelt werden könnte, was ich nicht will und vermutlich auch später in Grafana komisch aussehen würde.
Den "Trigger" habe ich auf der Standardeinstellung belassen, hier wird die Häufigkeit einfach über die Zählerstände gesteuert, also alle 10min, evtl. 2mal, da ja 2 Eingänge belegt sind.
Screenshot 2023-08-11 211601.png
Die Eingänge sind recht unspektakulär, hier wird das bestehende KO vom Modbusgateway weiter verwendet (Auf richtigen Datentyp achten).
Screenshot 2023-08-11 211631.png
Eingang 2 the same:
Screenshot 2023-08-11 211650.png
Und beim Ausgang (ganz unten im letzten Block) kommt dann die Addition der beiden Eingangs-Werte ins Spiel:
Screenshot 2023-08-11 211705.png
Nun wird im Prinzip diese Logik so oft wiederholt, bis alle Zählerstände aufaddiert wurden, ich zeig grad mal noch von der letzten Logik den Eingang 1, der Rest ist ja immer gleich. Hier wird dann auch der Ausgang mit dem KO für den Gesamtzählerstand belegt. Ich empfehle hier erst einmal mit Zwischenergebnissen zu rechnen und diese interne Verknüpferei erst ganz am Schluss einzubauen. War auch ein Tipp von mumpf und war wirklich Gold wert

Hier wurde eben einfach das Ergebnis der Logik 11 wiederverwendet:
Screenshot 2023-08-11 214247.png
Nun kommen wir zur Logik für den heutigen Verbrauch. Als erstes habe ich mir überlegt wie ich zu diesem Wert komme.
Und im Prinzip ist es ja Zählerstand heute "minus" Zählerstand gestern.
Zählerstand heute ist ja kein Problem, dieser wird ja wie oben beschrieben regelmäßig ermittelt.
Also brauchen wir Zählerstand gestern und müssen diesen ~24h speichern.
Ich hab mich dafür entschieden den Wert um 23:55 zu schreiben. Ich hatte erst 00:00 aber nach ein bisschen überlegen kam ich zum Entschluss dass das evtl. suboptimal ist, wenn der Wert nicht vor oder = Mitternacht wieder von vorne anfängt zu zählen. Könnte dann in Grafana komisch aussehen, muss ich aber noch testen und spielt hier momentan auch nicht die große Rolle. Eure Meinungen oder Erfahrungen dazu sind mir herzlich Willkommen

So, nun haben wir die Schaltzeit, easy peasy über die integrierte Zeitschaltuhr. Nun müssen wir aber noch zu dem Zeitpunkt den aktuellen Zählerstand auf den Bus schreiben und speichern. Da kam mir die TOR Funktion in den Sinn. Also TOR für Zählerstand öffnet sich WENN Zeitschaltuhr GLEICH 1.
Abgesehen von der Schaltzeit blieb diese Logik auf Grundstellung. Hab ich nun nach mumpfs Empfehlung angepasst.
zeitschaltuhr Übersicht.png
Nun kommen wir zum TOR. Hier ist aber auch wirklich alles klasse beschrieben, es hat einfach so auf Anhieb geklappt. Wirklich genial, ich muss das einfach immer wieder Loben

Hier wird eingestellt dass das Tor sofort nach öffnen wieder schließt und das beim öffnen der Eingangswert gesendet wird.
Also hier der Gesamtzählerstand. Und somit wird auch sichergestellt das dieser nur einmal während dem öffnen des TORs weitergeleitet wird.
Tor Übersicht.png
Der erste Eingang ist wie man sieht der Dateneingang, in unserem Fall der errechnete Zählerstand von der oberen Logik (Wieder auf DPT achten).
Screenshot 2023-08-11 215910.png
Am 2ten Eingang wird unserer Toreingang definiert. hier kommt das Signal der Zeitschaltuhr drauf (wieder intern verknüpft).
Screenshot 2023-08-11 215952.png
Und hier der Ausgang, sollte selbst erklärend sein.
Screenshot 2023-08-11 220027.png
Kommentar