S0 Stromzähler in Openhab2 integrieren
-
- Beiträge: 52
- Registriert: 28. Jul 2018 18:35
S0 Stromzähler in Openhab2 integrieren
Moin zusammen,
ich versuche gerade die S0 Daten die von meinem ESPEasy per MQTT zum Openhab2 kommen Sinnvoll umzuwandeln.
Leider stehe ich etwas auf dem Schlauch und finde einfach 0 Infos dazu.
Hat das schon jemand gemacht und kann evtl. unterstützen?
Danke und Gruß
Matze
ich versuche gerade die S0 Daten die von meinem ESPEasy per MQTT zum Openhab2 kommen Sinnvoll umzuwandeln.
Leider stehe ich etwas auf dem Schlauch und finde einfach 0 Infos dazu.
Hat das schon jemand gemacht und kann evtl. unterstützen?
Danke und Gruß
Matze
Zuletzt geändert von matze.lingen am 6. Feb 2021 20:16, insgesamt 2-mal geändert.
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 in Openhab2 integrieren
Darf ich davon ausgehen, dass Du mit S0 einen Zählerimpuls meinst? In welcher Form kommt das über mqtt an? als Impuls? oder als Zahl (Anzahl der Zählimpulse seit xy)?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 52
- Registriert: 28. Jul 2018 18:35
Re: S0 in Openhab2 integrieren
Hey ja habe einen DRT751DE Zähler. An dem hängt ein NodeMCU mit ESPEasy drauf. Dieser Liefert die folgenden Werte in Einzelne MQTT Topics: Count / Total und Time. Nun bin ich aber echt Total überfragt wie ich die Informationen in Verbrauchswerte umgewandelt bekomme.
Vielen Dank
Gruß
Matthias
Vielen Dank
Gruß
Matthias
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 Stromzähler in Openhab2 integrieren
Na, Du musst nur den jeweiligen Zählerstand regelmäßig sichern (über eine Persistence, z.B. rrd4j oder jdbc)
Anschließend kannst Du auf den Zählerstand zugreifen und z.B. die Differenz seit der letzten Stunde, Tagesbeginn usw. ausrechnen. Ein Impuls entspricht einer Wh, also einer Stromaufnahme von einem Watt über einen Zeitraum von einer Stunde. Oder anders ausgedrückt: Wenn Du so eine alte 60 Watt Glühlampe an dem Zähler anschließt und einschaltest, gibt der Zähler alle 60 Sekunden einen Impuls ab.
Anschließend kannst Du auf den Zählerstand zugreifen und z.B. die Differenz seit der letzten Stunde, Tagesbeginn usw. ausrechnen. Ein Impuls entspricht einer Wh, also einer Stromaufnahme von einem Watt über einen Zeitraum von einer Stunde. Oder anders ausgedrückt: Wenn Du so eine alte 60 Watt Glühlampe an dem Zähler anschließt und einschaltest, gibt der Zähler alle 60 Sekunden einen Impuls ab.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 52
- Registriert: 28. Jul 2018 18:35
Re: S0 Stromzähler in Openhab2 integrieren
Ja Aber ich finde keine Anleitung das ein zu binden. Hab influx und rrd4j am laufen. Aber gibt es Vorlagen?
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 Stromzähler in Openhab2 integrieren
Das steht in der offiziellen Doku. Für openHAB2 musst Du allerdings zuerst die Anleitung für eine andere als die aktuelle Version auswählen, also z.B. 2.5 (oben links wo "Version: latest" steht)
Voraussetzungen:
Inhalt der Datei:
In diesem Beispiel werden zwei Items persistiert.
Das erste Item ist ein gewöhnliches Item.
Das zweite Item ist ein Group Item (mit exakt dem angegebenen Namen, bis auf den Stern natürlich). Als Besonderheit wird aber nicht der Status des Group Items gespeichert, stattdessen werden alle Member dieser Gruppe persistiert. Es reicht dann also, ein Item der Gruppe Mein_GroupItem zuzuweisen, um es mit der angegebenen Strategie zu persistieren.
Es können mehrere Strategien angegeben werden, everyChange sollte hier ausreichen. everyUpdate speichert auch dann, wenn ein Item den gleichen Wert zugewiesen bekommt (aber mit neuem Zeitstempel...) den es schon hat. restoreOnStartup stellt beim Systemstart den Status des Items wieder her, und zwar mit dem letzten Wert, der in dieser Persistence gespeichert wurde. Weitere Strategien sind dann die cron Strategies, welche im Kopf angelegt werden (im Beispiel everyMinute und every15Minutes). cron Strategies braucht man normalerweise nur im Zusammenhang mit rrd4j und den eingebauten Grafen (in openHAB2).
Voraussetzungen:
- ein installierter und laufender Broker wie z.B. mosquitto
- Der NodeMCU ist am Broker angemeldet und kann Topics publishen
- in openHAB ist mqtt2 und mindestens eine Persistence eingerichtet, die Zahlen unverfälscht speichern und wiedergeben kann (z.B. influxDB)
- Es ist ein mqtt Broker Thing (bzw. Bridge) eingerichtet und mit dem laufenden Broker verbunden
- Es ist ein generic mqtt Thing eingerichet, welches mit dem Broker Thing verbunden ist
- In dem Thing ist ein Number Channel eingerichtet, der das Total Topic als stateTopic eingetragen hat (und es kommt der Zählerstand an)
- ein Number Item ist mit dem Channel verlinkt (und zeigt den Zählerstand an)
Inhalt der Datei:
Code: Alles auswählen
// persistence strategies have a name and a definition and are referred to in the "Items" section
Strategies {
// some cron strategies
everyMinute : "0 * * * * ?"
every15Minutes : "0 0/15 * * * ?"
}
Items {
// let's store some values in influxdb
Mein_Item : strategy = everyChange
Mein_GroupItem* : strategy = everyChange
}
Das erste Item ist ein gewöhnliches Item.
Das zweite Item ist ein Group Item (mit exakt dem angegebenen Namen, bis auf den Stern natürlich). Als Besonderheit wird aber nicht der Status des Group Items gespeichert, stattdessen werden alle Member dieser Gruppe persistiert. Es reicht dann also, ein Item der Gruppe Mein_GroupItem zuzuweisen, um es mit der angegebenen Strategie zu persistieren.
Es können mehrere Strategien angegeben werden, everyChange sollte hier ausreichen. everyUpdate speichert auch dann, wenn ein Item den gleichen Wert zugewiesen bekommt (aber mit neuem Zeitstempel...) den es schon hat. restoreOnStartup stellt beim Systemstart den Status des Items wieder her, und zwar mit dem letzten Wert, der in dieser Persistence gespeichert wurde. Weitere Strategien sind dann die cron Strategies, welche im Kopf angelegt werden (im Beispiel everyMinute und every15Minutes). cron Strategies braucht man normalerweise nur im Zusammenhang mit rrd4j und den eingebauten Grafen (in openHAB2).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 52
- Registriert: 28. Jul 2018 18:35
Re: S0 Stromzähler in Openhab2 integrieren
Ok soweit habe ich das schon am laufen. Ich bekomme die Werte auch im der sitemap angezeigt aber das ist ja nur der Count total und time. Aber nicht die Darstellung in Watt oder kW/h bzw den Tages und Gesamtverbrauch.
Vielen Dank
Mfg
Matthias
Vielen Dank
Mfg
Matthias
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 Stromzähler in Openhab2 integrieren
Wie gesagt, ein Impuls entspricht einer Wattstunde. Der Gesamtverbrauch ist gleich der Anzahl der Impulse (in Wattstunden). Der Tagesverbrauch ergibt sich aus der Differenz zwischen jetzt und Tagesbeginn. Das kannst Du über eine einfache Rule in ein eigenes (ungebundenes) Item schreiben, so:
Rule:
Das Item Gesamtverbrauch enthält dann Total. Jedes Mal, wenn der Zählerstand sich ändert, wird das Item für den Tagesverbrauch aktualisiert.
Eine kleine Ungenauigkeit: Wenn um Mitternacht der Stromverbrauch sehr niedrig ist, bleibt die Anzeige auch nach Mitternacht noch auf dem Stand vom Vortag. Erst beim nächsten Impuls wechselt sie dann auf 1 Wh. Das sollte aber zu verschmerzen sein.
Code: Alles auswählen
Number Tagesverbrauch "Tagesverbrauch [%.0f Wh]"
Code: Alles auswählen
rule "Tagesverbrauch"
when
Item Gesamtverbrauch changed
then
Tagesverbrauch.postUpdate((Gesamtverbrauch.deltaSince(now.withTimeAtStartOfDay))
end
Eine kleine Ungenauigkeit: Wenn um Mitternacht der Stromverbrauch sehr niedrig ist, bleibt die Anzeige auch nach Mitternacht noch auf dem Stand vom Vortag. Erst beim nächsten Impuls wechselt sie dann auf 1 Wh. Das sollte aber zu verschmerzen sein.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 52
- Registriert: 28. Jul 2018 18:35
Re: S0 Stromzähler in Openhab2 integrieren
Ok ich Versuche das Mal so zu bauen. Dann müsste ja der espeasy total immer um 12 Uhr Nullen... Und was muss ich machen um die aktuelle Leistung zu ermitteln? Brauche ich da auch ne rule weil sonst steht da ja nur ein Zahlenwert. Iwie verstehe ich grob was der Zähler über s0 auswirft aber nicht wie ich mit den 3 werten rechnen muss. Um dann entsprechende anzeigen zu bekommen.
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 Stromzähler in Openhab2 integrieren
Nein, warum sollte da was genullt werden? Total sollte streng monoton wachsen. Die Rule errechnet den Tagesverbrauch über die Persistence.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet