Shelly Verbrauchswerte Speichern

Geflasht oder ungeflasht ...

Moderator: seppy

danielm83
Beiträge: 23
Registriert: 14. Dez 2021 20:51

Re: Shelly Verbrauchswerte Speichern

Beitrag von danielm83 »

Hallo Udo

auf den ersten Blick scheint es zu funktionieren. Vielen Dank dafür.

Was mir aber aufgefallen ist: müsste das letzte postUpdate nicht (newSum) sein, anstelle von (sum)?
Ich habs jetzt mal geändert weil es mir plausible schien.

Danke
Daniel

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Shelly Verbrauchswerte Speichern

Beitrag von udo1toni »

Sehr gut, Test bestanden!

(Spaß, ich hatte es ursprünglich nur mit sum geschrieben, wollte aber dann unbedingt noch die Log-Zeile ausgeben... und an dieser Stelle habe ich natürlich den Variablennamen nicht angepasst gehabt...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

danielm83
Beiträge: 23
Registriert: 14. Dez 2021 20:51

Re: Shelly Verbrauchswerte Speichern

Beitrag von danielm83 »

:lol:

Ich dachte mir schon, dass das ein Test ist.

Jedenfalls funktioniert es immer noch und ist sicher besser als die 1/4 Stunden Rule die ich hatte.
Was bei einem Neustart oder so passiert wird sich zeigen.

Ich hab jetzt mal eine mapDB angelegt und alle items drin und bei der rrd4j das restoreonstartup raus genommen.

Danke
Daniel

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Shelly Verbrauchswerte Speichern

Beitrag von udo1toni »

Schau mal über die Items, welche den Status aktiv holen.
Z.B. habe ich knx im Einsatz. Und da ich das korrekt konfiguriert habe ;) sehe ich beim Systemstart eine lange Liste von Read Requests mit entsprechender Antwort. Meine Schalter, Dimmer, Temperatursensoren usw. zeigen ab Programmstart den korrekten Wert an, weil frisch vom Bus gezogen, auch wenn ich während einer Downtime Lichter schalte. Ein aktiv gezogener Zustand ist besser als ein wiederhergestellter Wert.

Verschiedentlich ist auch ein nicht initialisierter Wert besser als ein inaktueller Wert, weil man dann vielleicht gezielt Maßnahmen einleiten kann. Ein "restoreAll" ist also nicht unbedingt zielführend, wobei es im Einzelfall natürlich schon passen kann.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

nw378
Beiträge: 199
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: Shelly Verbrauchswerte Speichern

Beitrag von nw378 »

Hallo Udo,

wie immer genial. Ich habe hierzu noch eine Verständnisfrage.
Nachdem ich die Regel implementiert habe, will ich auch die bisherige Summe ergänzen.
Beispiel: zu ergänzendes Delta 100.
dazu habe ich temporär in der Regel

Code: Alles auswählen

        newSum = sum + diff +100
ergänzt.

Beim ersten Durchlauf klappt's, Ausgabe:

Code: Alles auswählen

 Messwert Alt: 2.264 Neu: 2.269 Differenz: 0.0050001144
 Summe alt: 2.269 Summe neu: 102.274 
Dann lösche ich die +100 wieder in der Regel, (Shelly_KWL_energy_sum ist ja per postUpdate aktualisiert).

Beim nächsten Durchlauf kommt dann:

Code: Alles auswählen

Messwert Alt: 2.269 Neu: 2.274 Differenz: 0.004999876
Summe alt: 2.274 Summe neu: 2.2789998
"sum" müsste doch den neuen Wert von Shelly_KWL_energy_sum angenommen haben.

Ich krieg Kopfschmerzen...
openHAB 4.1.0 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Shelly Verbrauchswerte Speichern

Beitrag von udo1toni »

Hast Du openHAB zwischendurch angehalten? Lässt Du das Item für die Summe persistieren? Lässt Du den Wert beim Start von openHAB wiederherstellen?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

nw378
Beiträge: 199
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: Shelly Verbrauchswerte Speichern

Beitrag von nw378 »

openhab läuft weiter, das Summen-Item (bei mir heiss es PVtotal) wird über influx persistiert:

Code: Alles auswählen

PVtotal               : strategy = everyMinute,everyChange, restoreOnStartup
openHAB 4.1.0 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Shelly Verbrauchswerte Speichern

Beitrag von udo1toni »

Das ist seltsam. Wie sieht Deine Rule aus?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

nw378
Beiträge: 199
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: Shelly Verbrauchswerte Speichern

Beitrag von nw378 »

Eigentlich copy&paste, nur die Items ausgetauscht:

Code: Alles auswählen

rule "Gesamtverbrauch PV Kraftwerk"
when
    Item PVAnlage_Ertrag changed 
then
    val oldVal = if(!(previousState instanceof Number)) 0 else (previousState as Number).floatValue
    val newVal = if(!(newState instanceof Number))      0 else (newState as Number).floatValue
    val diff = newVal - oldVal

    logInfo("consumption", "Messwert Alt: {} Neu: {} Differenz: {}",oldVal,newVal,diff)

    if(!(PVtotal.state instanceof Number))
        return;

    val sum = (PVtotal.state as Number).floatValue 
    var newSum = 1.5
    if(diff >= 0)
        newSum = sum + diff 
    else
        newSum = sum + newVal

    logInfo("consumption","Summe alt: {} Summe neu: {}",sum,newSum)
    PVtotal.postUpdate(newSum)
end
openHAB 4.1.0 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

Benutzeravatar
udo1toni
Beiträge: 13860
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Shelly Verbrauchswerte Speichern

Beitrag von udo1toni »

Das kann eigentlich nicht sein... Du kannst ja im Code sehen, dass die Variable sum (die wird in der zweiten Meldung ausgegeben) direkt aus dem Item entnommen wird.
Also kann PVTotal nicht mit newSum gefüllt worden sein.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten