negatives Auswertungsergenbnis korrigieren

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
goerdi
Beiträge: 110
Registriert: 21. Dez 2019 23:44
Answers: 0

negatives Auswertungsergenbnis korrigieren

Beitrag von goerdi »

Hi !

ich beziehe mich mal auf diese viewtopic.php?p=60563#p60563 letzte rule welche ich auch für die Erfassung von Energieverbrauch an Shelly Plug S verwende
Ich habe jetzt den fall bei der Monatsauswertung (anscheinend hat jemand komplett den Stecker mit Plug S gezogen statt nur den Netzstecker vom Gerät) dass ich ein negatves Ergebnis habe, weil bei Strom weg oder eben abziehen fängt der Shelly bei 0 an....
kann ich das irgerndwie zurueckrechnen ? oder muss ich den Weg gehen das ich z.B. Stündlich erfasse und alle volle stunde dann aufaddiere ?

Gruss Gerd

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

Re: negatives Auswertungsergenbnis korrigieren

Beitrag von udo1toni »

Na ja, Du kannst den Zählerstand entsprechend korrigieren, wenn der Wert kleiner ist als 0, aber kaputte Messwerte sind... kaputt... Mindestens fehlt dann halt ein Teil, weil noch nicht ausgewertet. Klingt jetzt etwas theoretisch :)
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: negatives Auswertungsergenbnis korrigieren

Beitrag von nw378 »

Ich habe einen Shelly Plug als Zwischenstecker, um den Ertrag meines Balkonkraftwerks zu ermitteln.

Um bei Stromausfall die Datenbank nicht zu zerschießen, habe ich folgende Regel:

Code: Alles auswählen

rule "Strom: Gesamtertrag PV Kraftwerk"
when 
    Item PVAnlage_Ertrag changed 
then
    val oldVal = if(!(previousState instanceof QuantityType<?>)) 0|kWh else (previousState as QuantityType<?>)   
    val newVal = if(!(newState instanceof QuantityType<?>)) 0|kWh else (newState as QuantityType<?>)
    val diff = (newVal - oldVal) 
    if(!(PVtotal.state instanceof QuantityType<?>)) 
      return;
    val sum = PVtotal.state as QuantityType<?>
    var newSum = 0|kWh as QuantityType<?>
    if(diff >= 0|kWh) {
        newSum = sum + diff
        if (diff<1|kWh) 
          PVtotal.postUpdate(newSum.toString) }
end
Das Item PVAnlage_Ertrag ist mit dem Shelly verknüpft, das Item PVtotal ein "virtuelles", OH-intern.
openHAB 4.1.0 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

Antworten