Die letzten Wochen standen ganz im Zeichen der beiden ioBroker Adapter smartmeter & Envertech. Dementsprechend kann ich jetzt alle Werte unseres Stromverbrauchs, sowohl vom Netzbetreiber als auch von unserem Balkonkraftwerk, in Echtzeit im ioBroker einsehen und verwenden.
Aus diesem Grund zeige ich euch in diesem Beitrag wie ich diese Werte in Form einer Statusanzeige mithilfe von VIS Visualisiert habe. Bevor wir zur eigentlichen VIS Konfiguration beginnen, müssen wir wie so oft, ein paar Vorbereitungen treffen.
Verwendete Adapter
Zur Realisierung habe ich insgesamt fünf unterschiedliche Adapter im ioBroker verwendet. Jedoch muss ich dabei unterscheiden, dass Javascript und VIS als Grundvoraussetzung dienen und VIS – icontwo, icons – icons8, sowie icons-open-icon-library-png ausschließlich für das Design der Icons verwendet wird.
Datenpunkte
Der erste Schritt der Vorbereitung besteht im Anlegen von weiteren Datenpunkte, zum Festlegen von Statusanzeigen oder um die Ergebnisse von Berechnungen abzuspeichern. Insgesamt benötigen wir sieben Datenpunkte vom Zustandstyp boolean & number.
Zur einfachen Identifizierung versehe ich die von mir erstellten Datenpunkte mit dem Kürzel „VAR_“ vor dem eigentlichen Namen des Datenpunkts.
Datenpunkte Zustandstyp boolean
In der Visualisierung zeige ich in Form zweier Pfeile oder einem Kreuz an, ob mein Balkonkraftwerk aktuell Strom erzeugt und ob ich Strom vom Netzbetreiber beziehe. In beiden Fällen kann ich nicht direkt auf Datenpunkte der Adapter zurückgreifen. Aus diesem Grund sind zwei Datenpunkte vom Zustandstyp boolean zu erstellen. Datenpunkte von Zustandstyp boolean können nur zwei Zustände annehmen, wahr oder falsch, wodurch Sie sich perfekt zum Steuern meiner Anzeige eignen.
Die Datenpunkte habe ich wie folgt benannt, bezüglich der Namensgebung könnt ihr natürlich frei wählen.
- VAR_Solar_Einspeisung
- VAR_Strom_Bezug
Datenpunkte Zustandstyp number
Die nächsten Datenpunkte dienen dem Speichern von Zahlenwerten der Berechnungen oder zu Täglichen festlegen der Anfangszählerstände. Um den Eigenverbrauch, der Balkonkraftwerke kWh, festzustellen benötige ich den Zählerstand wieviel kWh bereits ins öffentliche Stromnetz eingespießt wurden. Identisch ist es mit dem vom Netzbetreiber bezogenen kWh. Dementsprechend speichere ich einmal täglich den beide Zählerstände in die folgenden Datenpunkte:
- VAR_Zaehlerstand_Einspeißung_beginn
- VAR_Zaehlerstand_Verbrauch_beginn
Auf Basis dieser Datenpunkte, kann ich mithilfe des smartmeters und der Enverbridge meine Berechnungen vornehmen.
- VAR_Bezug_Tagesverbrauch
- VAR_Gesamtverbrauch
- VAR_Eigenverbrauch
Erstellen der Datenpunkte
Die Datenpunkte erstellt ihr im ioBroker unter den Objekten. Zum Erstellen wählt ihr den obersten Ordner 0_userdata –> 0 aus. Damit ihr künftig eine bessere Übersicht über die Datenpunkte habt, empfehle ich euch je nach Anwendungsfall die Datenpunkte in Ordnern zu organisieren. Aus diesem Grund habe ich einen Ordner Namen Variablen_Energie erstellt.
Zum Erstellen eines Datenpunktes klickt ihr auf das + Symbol im oberen Menü der Ordnerstruktur. Anschließend erscheint ein Pop-Up Fenster, in welchem ihr zuerst unter Typ „Datenpunkt“ auswählt und als Zustandstyp boolean oder numbers, wie zuvor beschrieben. Abschließend nur noch den Namen eintragen und mit hinzufügen bestätigen. Diesen Schritt wiederholt ihr so oft, bis alle sieben Datenpunkte erstellt sind.
Berechnungen / Skripte
Nachdem wir die Datenpunkte erstellt haben, besteht der nächste Schritt darin, diese mit Werten zu befüllen. Dies geschieht entweder mit Berechnungen, täglichen Zwischenspeichern der Werte des Stromzählers oder einfachen Logikabfragen.
Logikabfragen
Bei den Logikabfragen geht es ausschließlich darum, die Symbole bezüglich der Fließrichtung des Stroms vom Netzbetreiber und des Balkonkaftwerks zu steuern. Zum Erstellen der Skripte navigiert ihr über das Menü am linken Rand des ioBrokers auf Skripte. Anschließend könnt ihr ein neues Skript über das +-Symbol im oberen Menü erstellen. Identisch zu den Datenpunkten empfiehlt es sich diese in Ordnern zu organisieren. Nachdem ihr ein neues Skript erstellt, erscheint die Abfrage, welcher Skripteditor verwendet werden soll. Für dieses Beispiel arbeiten wir ausschließlich mit Blocky.
Zum Steuern der Einspeisung wird der Trigger „falls Objekt“ verwendet, in diesem ich den Datenpunkt der Enverbridge abfrage, wieviel Strom aktuell erzeugt wird. Darin eingefügt wird der Logikbaustein falls mache. Mit einem Klick auf das blaue Zahnrad kann anschließend zu falls auch sonst ergänz werden.
Anschließend ist mithilfe des Logikbausteins „ist war wenn“ der aktuelle Wert des Datenpunktes aus der Enverbridge mit dem Zahlenwert 1 in Abhängigkeit gesetzt. Hierbei ist der Operator größer gleich zu wählen. Dadurch wird „mache“ ausgeführt wenn, der Wert des Enverbridge Datenpunktes größer gleich 1 ist.
Der zu aktualisierende Datenpunkt lautet „VAR_Solar_Einspeisung“, welcher unter „mache“ auf „wahr“ gesetzt wird oder unter „sonst“ auf „falsch“.
Identisch zum Aufbau der Einspeisung wird der Bezug gesteuert. Jedoch wird der Datenpunkt des Strombezugs über alle drei Phasen verwendet. Der zu aktualisierende Datenpunkt ist in meinem Fall VAR_Strom_Bezug.
Zwischenspeichern Zählerstände
Um den Tagesstromverbrauch zu berechnen, wird täglich der Zählerstand zum Tagesbeginn in einen Datenpunkt gespeichert. Persönlich habe ich 23:59 als passenden Zeitpunkt gewählt. Sobald der Zeitpunkt erreicht ist, wird der Zählerstand des vom Netzbetreiber gelieferten Stroms, sowie der Zählerstand des eingespeisten Stroms in den passenden Datenpunkt gespeichert.
Auch hier ist ein Trigger vom Typ Zeitplan zu benutzen, in dem der Zeitpunkt eingetragen wird. Anschließend die beiden Datenpunkte VAR_Zaehlerstand_Einspeisung_beginn und VAR_Zaehlerstand_Verbrauch_beginn mit den Datenpunkten des smartmeter Adapter befüllt. Achtet dabei darauf, dass ihr die beiden Werte nicht verwechselt.
- Einspeisung_beginn = 2.8.0
- Verbrauch_beginn = 1.8.0
Berechnung
Insgesamt müssen drei Berechnungen durchgeführt werden. Die erste Berechnung des Tagesverbrauchs ist mit dem Datenpunkt Gesamtverbrauch, abzüglich des Datenpunktes VAR_Zaehlerstand_Verbrauch_beginn zu berechnen. Das dadurch erhaltene Ergebnis spiegelt den Tagesverbrauch wider, welchen ihr vom Netzbetreiber bezogen habt.
In der zweiten Rechnung berechnen wir den Eigenverbrauch des selbst erzeugten Stroms. Dazu einfach den Datenpunkt des smartmeters, bezüglich des gesamten eingespeisten Stroms, minus VAR_Zaehlerstand_Einspeisung_beginn rechnen. Das Ergebnis wird danach von der „Gesamterzeugung am Tag“ des Enverbridge Adapters abgezogen.
Abschließend wird der Gesamtverbrauch, durch die Addition der Datenpunkte VAR_Bezug_Tagesverbrauch und VAR_Solar_Eigenverbrauch in VAR_Gesamtverbrauch berechnet.
Als Trigger dient eine Änderung des bezogenen Stroms beim Netzbetreiber.
VIS – Visualisierung
Im letzten Schritt erstellen wir die Visualisierung der Datenpunkte mit VIS. Dazu einfach im ioBroker-Menü auf Übersicht klicken und anschließend die Visualisierung auswählen.
Zur Visualisierung verwende ich drei unterschiedliche Widgets:
- basic string
- basic number
- inventwo image
Die Angezeigten Bilder, sowie Pfeile sind mittels „inventwo Image“ angezeigt. Die Texte mit dem Widget „basic String“ und die Zahlenwerte mit „basic number“. Zu den Bildern noch einmal der Hinweis, dass ihr jedes andere Design verwenden könnt.
Der Einfachheit geschuldet verzichte ich auf die seitenlange Erklärung und Anordnung der einzelnen Widgets und bitte euch einfach das Video ab Minute 24 anzusehen.
Video
Die gesamte Einrichtung und Visualisierung findet ihr ausführlich im folgenden Video, auf meinem Youtube-Kanal.
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen
Hi,
ich versenke mich gerade ein bisschen in den Smartmeter und die solarmanpv Schnittstelle für den Deye Gleichrichter.
Das funktioniert auch ganz gut, nur ich hätte gerne eine längerfristige Auswertung.
Hast Du eine Idee oder hast es schon umgesetzt die Daten über einen längeren Zeitraum zu speichern ??
vG
Magnus
Hi Magnus,
ich habe bei mir auch eine InfluxDB im Einsatz und übertrage die Werte direkt vom ioBroker in die Datenbank. Dort werden die Werte bei mir aktuell noch unbegrenzt gespeichert. In Kombination mit Grafana ist das eine super Sache und ich kann jederzeit eine Auswertung fahren.
Hi.
Wie überträgst du die Datenwerte in die DB? Läuft diese auf dem gleichen Gerät wie der iobroker?
Ich sammle derzeit alles im history Adapter – man könnte ja auch die json Datei in Excel auswerten, oder?
Gruß
Hi Stephan,
ich habe mir eine separate InfluxDB in einem Docker Container angelegt. Der ioBroker übermittelt die Werte dann direkt in die Datenbank. Sozusagen liegt alles auf dem selben Gerät, da ich alles auf meiner Synology NAS betreibe. Vom Prinzip könnte man das auch in Excel auswerten, finde ich jedoch etwas umständlich, habe ich zuvor 2 Jahre gemacht. Ich habe mir auf Basis der Datenbank alles nach Grafana umgebaut bzw. aufgebaut.