Ok hab das nun so drin und warte auf ein paar Werte. Wofür benötige ich dann noch Count und Time?
Wenn das System neu startet, dann wird doch der Total Count genullt was mache ich den in dem Fall?
Vielen Dank.
Gruß
Matthias
S0 Stromzähler in Openhab2 integrieren
-
- Beiträge: 52
- Registriert: 28. Jul 2018 18:35
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 Stromzähler in Openhab2 integrieren
Ah, das ist natürlich suboptimal. Da müsste man mal etwas drüber nachdenken...matze.lingen hat geschrieben: ↑9. Feb 2021 10:59 Wenn das System neu startet, dann wird doch der Total Count genullt was mache ich den in dem Fall?
So auf die Schnelle: lege eine Rule an, die bei jedem change triggert. Sende dann die Differenz alter/neuer Zählstand an ein Proxy Item, welches mit everyUpdate persistiert ist. Der Verbrauch ergibt sich dann aus Item.sumSince(now.withTimeAtStartOfDay).
Du legst nun also ein Item Zaehlpulse an
Code: Alles auswählen
Number Zaehlpulse // mit everyUpdate persistieren
Code: Alles auswählen
rule "Impulse zählen"
when
Item Total changed
then
if(!(previousState instanceof Number)) // Item war leer -> Abbbruch
return;
var diff = newState - previousState // Anzahl Impulse seit letztem Update
if(newState < previousState) // Falls der Zähler genullt wurde
diff = newState // stattdessen direkt den neuen Wert nehmen
Zaehlpulse.postUpdate(diff) // in der Persistence speichern
Thread::sleep(300) // ein wenig warten
Tagesverbrauch.postUpdate(Zaehlpulse.sumSince(now.withTimeAtStartOfDay)) // Tagesverbrauch auslesen
end
Falls kein gültiger alter Wert vorhanden ist, wurde openHAB neu gestartet und das Item Total musste erst initialisiert werden. Entsprechend darf der Wert nicht aktualisiert werden und die Rule bricht ab.
Ansonsten wird die Differenz in das Proxy Item geschrieben, welches persistiert wird. Nach einer kleinen Pause, damit die Persistence Zeit hatte, ihre Arbeit zu erledigen, wird der neue Verbrauch ausgelesen und ins entsprechende Item geschrieben.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 1
- Registriert: 13. Mär 2022 22:17
Re: S0 Stromzähler in Openhab2 integrieren
Hallo, ich bin ganz neu bei OpenHab und mache so die ersten Gehversuche.
Der erste Zähler ist als S0 Zähler für den Gasverbrauch engerichtet und gibt auch artig die gezählten Pulse in der Grafik aus.
Mit der Anzeige der Leistung beiße ich mir aber die Zähne aus.
Ich habe die Persitenz mit RRD4j. Die Zählwerte sind als item ZaehlerGas als number vorhanden.
GasLeistung ist als item typ number vorhanden.
Die Differenz der Werte ZaehlerGas aktuell - ZaehlerGas vor 15 Min * 4 * 1000 sollen als neuer Wert GasLeistung erfasst werden.
Hier die Rule die ich mir aus dem angelesenen zusammen gebastelt habe:
So funzt es aber nicht. Habe aber auch keine Idee wo der Fehler sein könnte. Habe schon Stunden damit zugebracht aber mir fehlt wohl zuviel.
Danke vorab für die Hilfe
Der erste Zähler ist als S0 Zähler für den Gasverbrauch engerichtet und gibt auch artig die gezählten Pulse in der Grafik aus.
Mit der Anzeige der Leistung beiße ich mir aber die Zähne aus.
Ich habe die Persitenz mit RRD4j. Die Zählwerte sind als item ZaehlerGas als number vorhanden.
GasLeistung ist als item typ number vorhanden.
Die Differenz der Werte ZaehlerGas aktuell - ZaehlerGas vor 15 Min * 4 * 1000 sollen als neuer Wert GasLeistung erfasst werden.
Hier die Rule die ich mir aus dem angelesenen zusammen gebastelt habe:
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: ZaehlerGas
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/javascript
script: >-
when
Item ZaehlerGas received update
then
GasLeistung.postUpdate(ZaehlerGas.deltaSince(now.minusMinutes(15))*4*1000)
end
type: script.ScriptAction
Danke vorab für die Hilfe
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: S0 Stromzähler in Openhab2 integrieren
Herzlich willkommen im Forum!
Dies ist eine Rule, die über die UI angelegt wurde.
Punkt 1: UI Rules haben einen Trigger Part. Das ist bei der Text Konfiguration der Teil zwischen when und then. Entsprechend darf dieser Teil incl. der beiden Schüsselworte in der UI Rule gar nicht vorkommen, der Code ist vielmehr alles zwischen den Schlüsselworten then und end.
Punkt 2: Du nutzt hier Befehle der Rules DSL, hast Aber als Scriptsprache Javascript angegeben, das kann nicht funktionieren.
Dies ist eine Rule, die über die UI angelegt wurde.
Punkt 1: UI Rules haben einen Trigger Part. Das ist bei der Text Konfiguration der Teil zwischen when und then. Entsprechend darf dieser Teil incl. der beiden Schüsselworte in der UI Rule gar nicht vorkommen, der Code ist vielmehr alles zwischen den Schlüsselworten then und end.
Punkt 2: Du nutzt hier Befehle der Rules DSL, hast Aber als Scriptsprache Javascript angegeben, das kann nicht funktionieren.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet