Shelly Stromverbrauch bei Stromausfall sichern

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von Detlef »

Hallo
ich wollte den Stromverbrauch von einer 400 Volt Pumpe über ein Jahr sicher speichern.

Und da komme ich nicht weiter. Kann da einer oder alle helfen.
Also Stromverbrauch wird in OH mit Shelly 2.5 angezeigt, aber immer wenn ein Stromausfall ist sind meine Daten vom Shelly und aus der rrd4 Datenbank verschwunden. Alles ist wieder auf 0, nur ich werde immer älter.

Meine Idee ist nun ein" Dummy Item( mit den 2 Gesamtverbräuche " Shelly 2.5) sicher zu speichern. Wenn dann möglich?
Aber die Rule bekomme ich nicht hin.

Code: Alles auswählen

rule "Stromerfassung Pumpe 1 und Pumpe 2 übergeben"
when
    Item Gartenpumpe_1 update 
    
    then
    
      Gartenpumpe_1.postUpdate (Strom_Pump1_Garten)
 
    end
Ansonsten muss ich zwei Analoge Zähler verbauen.

wie geht man da am besten vor. Hat da jemand ein Tip.
Danke
Mit freundlichen Grüße aus Recklinghausen

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

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von udo1toni »

Du musst da irgendwas falsch machen :) rrd4j persistiert die Daten definitiv auch über einen Stromausfall hinaus. Der Shelly wird vermutlich keinen Speicher haben, der über einen Stromausfall hinaus speichert (das Flash ist dafür ungeeignet, da zu wenige Schreibvorgänge möglich sind).
Wie sieht Deine Strategy aus?
Deine Rule ist auch "etwas seltsam". Ich frage mich bei solchen Rules immer, wo die Leute diese Syntax finden...

So sähe die Rule korrekt aus:

Code: Alles auswählen

rule "Stromerfassung Pumpe 1 und Pumpe 2 übergeben"
when
    Item Gartenpumpe_1 received update 
then
    Gartenpumpe_1.postUpdate(Strom_Pump1_Garten.state)
end
Wie man einrückt und Leerzeichen setzt, ist dabei eher nebensächlich, aber es wäre schon sinnvoll, Einrückungen so zu verwenden, dass die Rule strukturiert wird. Die Schlüsselworte rule, when, then und end bilden den fixen Rahmen einer Rule, sie gehören also alle in ein Ebene.
Es gibt verschiedene Trigger für die Rules, aber die angegebenen Schlüsselworte sind nicht wahlfrei. update reicht also nicht, der Trigger lautet received update.
Wenn ein Status verwendet werden soll, muss auch der Status referenziert werden.

Die Rule funktioniert allerdings nicht, wie Du es dir vorstellst, denn Du lässt die Rule auf das Item Gartenpumpe_1 triggern, schreibst aber innerhalb der Rule per postUpdate direkt in eben dieses Item. Vermutlich willst Du den Wert aus Gartenpumpe_1 eher im Item Strom_Pump1_Garten sichern, dann müsste die Zeile so aussehen:

Code: Alles auswählen

Strom_Pump1_Garten.postUpdate(Gartenpumpe_1.state)
Alternativ könnte es natürlich noch sein, dass der Strom im Item Strom_Pump1_Garten gemessen wird und nach Gartenpumpe_1 übertragen werden soll. Dann allerdings müsstest Du den Trigger der Rule tauschen, eben zu

Code: Alles auswählen

Item Strom_Pump1_Garten received update
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von PeterA »

Abgesehen davon.....

Der Shelly 2.5 ist ein "Doppel" Relais usw. aber eigentlich nur für "Lichtstrom" also 230V gedacht.
Aber Deine Pumpe hat 400V also 3 Phasig = Drehstrom !? Das passt nicht zusammen.
- OpenHab 2.4
#PWRUP

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von Detlef »

Hallo
Das mit den 400 Volt ist erstmal so.
Habe 2 Shelly 1 und die Pumpe ist mit 2 Phasen angeschlossen.
Stromverbrauch wird gemessen und funktioniert.
die 2 Phasen laufen über Schütz.

Zur Rules

Code: Alles auswählen

rule "Stromerfassung Pumpe 1 und Pumpe 2 übergeben"
when
        Time cron "0 52 9 ? * *" 
    
    then
    
      Strom_Pump1_Garten.postUpdate (Gartenpumpe_1.state)
    
    end
Die Rules funktioniert.

Danke , Danke.
Es sollte eine tägliche Übergabe des Stromverbrauch an ein Item " Strom_Pumpe1_Garten" weitergegeben werden.
Noch eine nachfrage.
Gartenpumpe2 plus Gartenpumpe 1 sollte zusammengezählt ins Item Strom_Pumpe1_Garten .
Danke
Mit freundlichen Grüße aus Recklinghausen

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

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von udo1toni »

Na ja, dann musst Du das halt auch so eintragen...
Wobei es sicherlich sinnvoll wäre, dafür zu sorgen, dass immer ein sinnvoller Wert geschrieben wird:

Code: Alles auswählen

rule "Stromerfassung Pumpe 1 und Pumpe 2 übergeben"
when
    Time cron "0 52 9 ? * *" 
then
    val Number nStrom1 = if(Gartenpumpe_1.state instanceof Number) (Gartenpumpe_1.state as Number).floatValue else 0
    val Number nStrom2 = if(Gartenpumpe_2.state instanceof Number) (Gartenpumpe_2.state as Number).floatValue else 0
    Strom_Pump1_Garten.postUpdate(nStrom1 + nStrom2)
end
Die Status werden in den lokalen Konstanten nStrom1 und nStrom2 gespeichert, sofern sie eine gültige Zahl enthalten. Ist das nicht der Fall, so wird 0 als Wert angenommen. Ansonsten wird die Zahl als Float Value verwendet.
Die Summe der beiden Konstanten wird ins Item geschrieben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von Detlef »

Danke für die super Lösung.


Nun noch die Daten sichern.

Code: Alles auswählen

Strategies
{
   everyMinute  : "0 * * * * ?"
   everyHour    : "0 0 * * * ?"
   everyDay     : "0 0 0 * * ?"
   default = everyMinute
}

Items
{
       //Gartenpumpe_2: strategy = everyMinute , restoreOnStartup
       //Gartenpumpe_1: strategy = everyMinute , restoreOnStartup
       Strom_Pump1_Garten: strategy = everyMinute , restoreOnStartup
      
      
      }
      
Jetzt sehe ich.
Das funktioniert ja überhaupt nicht. Ich brauche die Strom- Zählerstände über 1 Jahr vorlaufend.
Wenn Stromausfall am Shelly 1 ist , ist ja auch der Speicher am Shelly 1 wieder null.
Beim Stromausfall würde die Stromzähler spätestens nach 24 Stunden alles wieder von 0 anfangen.

Gibt es da eine Lösung ??????????

Danke
Mit freundlichen Grüße aus Recklinghausen

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von PeterA »

Ich Frage mich trotzdem wie das Elektrotechnisch funktionieren soll?
Den Shelly in Reihe zum Motor auf jeweils zwei Außenleitern ?
Btw: Der von Dir genannte Shelly1 hat keine Leistungsmessung. Wenn dann der 1PM aber auch nur für 230V.
Eigentlich sollte hier der Shelly 3EM verwendet werden.
- OpenHab 2.4
#PWRUP

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

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von udo1toni »

Messtechnisch wird das tatsächlich eher nicht funktionieren, die beiden Shellies sind ja dann quasi in Reihe zum Motor geschaltet:

Code: Alles auswählen

L1 --- Shelly A --- Motor --- Shelly B --- L2 
          |                      | 
N ------------------------------------------N
Die Shellies müssten also jeweils den identischen Strom messen.
Was mich auch etwas wundert: gewöhnlich wird man eher direkt einen Drehstrommotor mit drei Phasen nutzen.

Aber zurück zum Speicherproblem: Vermutlich liest Du ständig den falschen Wert aus. Du musst den Momentanverbrauch persistieren, nicht den kumulierten Gesamtverbrauch. Nur über den Momentanverbrauch kannst Du anschließend die Persistence auslesen um z.B. mittels sumSince(now-x) den Verbrauch über einen Zeitraum x zu erhalten, oder auch den Verbrauch über die Zeit grafisch darzustellen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von Detlef »

Hallo
Zum Strom.
Je 1 Shelly ist an einer Leitung von insgesamt 2 Leitungen dazwischen geklemmt.
Der Stromverbrauch ist je Leitung nicht ganz gleich.
Da über eine Leitung auch der Schütz einen kleinen Dauerverbrauch hat. Die Pumpe springt ca. 4-10 x am Tag an.
Über Nacht stellen beide Shelly den Strom an den 2 L ab.

So zum Speichern der Stromverbräuche. Da komme ich noch nicht klar.
Die Moment - Strom - Verbräuche sollen in der Datenbank?
Ich versuche das mal.
Bild ist der Gesamtverbrauch der Shellys
Im Moment sieht es so aus, wenn Strom ausgeschaltet wird am Shelly, fängt der Shelly von 0 an.
Ich habe aber wegen der nur täglichen Aktualisierung“ siehe Rules oben“ noch den Gesamtverbrauch Strom bis zum nächsten morgen .
Danke und Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit freundlichen Grüße aus Recklinghausen

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Shelly Stromverbrauch bei Stromausfall sichern

Beitrag von PeterA »

.... Und welche Shellys verwendest Du genau ?
Anfangs hast Du den 2.5er genannt... dann den 1er (der kann keine Leistung messen)
Und es ist richtig wenn man den Shelly vom Netz nimmt fängt sein Energiezähler wieder von vorne an.
- OpenHab 2.4
#PWRUP

Antworten