Beiträge von tvbshelly

    Dann siehst du, wieviel dein WR produziert und in das Häuschen einspeist.

    Der Plug unterscheidet nicht, ob das direkt vom Dach oder aus den Akkus kommt. Das macht aber kein Shelly.

    Welche AC Leistung hat dein WR? Das ist wichtig, damit der Plug nicht überlastet wird.

    Das ist durchaus verständlich, liefert aber keine Information über den Import und Export von Energie. Nach meinem Skript auf Grund deiner vorhergehenden Erklärung kann man aber jederzeit die Gesamtenergie (Lgesamt) berechnen.

    Ja, mein Code-Beispiel war leider verkürzt und die Energie falsch ausgerechnet.

    Hier muss man echt aufpassen, dass die Begriffe nicht durcheinander gehen (wie mir passiert ist):

    L = Leistung in Watt (English Power), Lgesamt also L1 + L2 + L3 = Gesamt-Leitung in Watt.

    Nehmen wir an: L1 = 1 Watt, L2 = 2 Watt und L3 = 1 Watt. Läge das konstant für eine Stunde an ergibt sich 1+2+1 = 4 Wh Watt-Stunden Energie (Energy).

    In deinem Skript wird die Leistung alle 10 ms ausgelesen. Genau wie in den anderen Skripten auch wird hier unterstellt, dass die Leistung in diesem Intervall konstant war (stimmt zwar nicht, ist aber als Näherung völlig ausreichend). Um daraus die Energie zu berechnen multiplizierst du die Leistung mit der verstrichenen Zeit und normierst es so - das ist auch korrekt.

    Diese Energie wird dann aber phasenweise in deinem Skript betrachtet und jeweils pro Phase auf Bezug/Export addiert. - das macht Shelly aktuell, das ist phasenbezogenes Addieren.

    Ich meine: Man muss die 3 Energiewerte (von diesem Intervall) addieren, und danach entweder die komplette Summe nur auf Bezug oder Export addieren - nicht gemischt. Dieses entweder komplett auf den einen Zähler oder komplett auf den anderen - das ist Saldieren.


    Aktuelles Beispiel:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Das ist die Momentanleistung. Nehmen wir mal zur Vereinfachung der Rechnung an, dass diese Werte jetzt für 1 ganze Stunde gleich bleiben. Dh. wir machen aus den Watt im Bild einfach Wattstunden

    1. Dann rechnet Shelly so:

    Alle Phasen mit positivem Werten werden addiert: 16,8 Wh + 21,3 Wh = 38,1 Wh

    Alle negativen Phasen werden addiert: -45,5 Wh (gibt halt nur eine)

    Das ergibt bei Shelly: 38,1 Wh Bezug und 45,5 Wh Einspeisung.

    2. Saldiert würde man so rechnen:

    Alle Phasenwerte addieren: -45,5 Wh + 16,8 Wh + 21,3 Wh = -7,4 Wh

    Jetzt schaut man sich an, ob dieser Wert positiv oder negativ ist. Hier ist er negativ, also addiert man diesen Wert nur bei Einspeisung (wäre der Wert positiv addiert man ihn nur bei Bezug).

    Das ergibt saldiert: 0 Wh Bezug und 7,4 Wh Einspeisung. Der Stromzähler würde hier 1.8.0: 0 Wh und 2.8.0: 7 Wh anzeigen

    Das sind komplett andere Werte als bei 1. Im Nachhinein kann man diese auch nicht mehr ineinander umrechnen.

    Was denn nun?

    Bitte nicht Halbsätze zitieren und dann nach dem Sinn fragen.

    Es ist simpel - damit hast du recht. Nur:

    Zitat

    Da man aber auch die aktuelle (Gesamt)Leistung korrekt darstellt, kann man es eigentlich simpel darstellen.

    Da verstehe ich nicht, was du meinst mit korrekt darstellt / simpel darstellen.

    Wir müssen das aber auch nicht diskutieren ;-)

    Mmh, das verstehe ich noch nicht so ganz: Machst du so eine Art Stream Processing, sprich hangelst dich an den Daten entlang und kannst deshalb kein zurück bzw. Backtrack?

    Ich dachte, man liest das, parsed das JSON und kann dann bequem auf die Keys zugreifen.

    Ich kenne mich aber 0 mit Loxone aus.

    ist dieses doch recht leicht per Skript implementierbar, oder nicht

    Ja, ist implementierbar und gibt es auch bereits einige Lösungen:

    https://community.shelly.cloud/topic/2023-pro…loud-dashboard/

    https://community.shelly.cloud/topic/2023-pro…indComment-9967

    https://community.shelly.cloud/topic/8537-she…ergy-balancing/

    https://github.com/sicanins/shelly-pro3EM-energycounter


    Dazu ein Schedule Job (Zeitplan), der bspw. alle 10 Minuten den Stand von Import und Export sendet.

    Das ist leider viel zu grob. Wenn man so rechnen könnte, wären die "magischen" Cloud Formeln von Shelly ausreichend.

    Manuelles Saldieren funktioniert nur, wenn man das Zeitintervall möglichst klein wählt - die Skripte schauen meist alle 500 ms nach den Werten.

    Edit: Sorry, falsch gelesen. Du sendest alle 10 Minuten, aber erfasst alle 10 ms - ja, genau, dann passt das


    Ok, sorry, noch ein Nachtrag:

    if(E1>=0) Import += E1 else Export += E1; if(E2>=0) Import += E2 else Export += E2; if(E3>=0) Import += E3 else Export += E3;

    Wenn ich jetzt nicht völlig falsch liege ist das die Shelly Methode.

    Saldieren heißt: Erst alle 3 Phasen addieren, dann entscheiden ob größer oder kleiner null und davon abhängig eins der beiden Zählwerke nehmen: Grob so

    Code
    Lgesamt = L1 + L2 + L3;
    if (Lgesamt > 0) Import += Lgesamt;
    if (Lgesamt < 0) Export += Lgesamt;

    Tasmota SML für DD3:

    https://tasmota.github.io/docs/Smart-Met…ebz-dd3-obissml

    und hier:

    Priamos
    13. Mai 2025 um 21:53

    Preislich liegst du bei den "etablierten" Elektromarken wie Wago oder Eltako deutlich über Shelly. Oft muss auch noch ein Modbus TCP Gateway zusätzlich angeschafft werden.

    "Hübsche" Auswertungen direkt mit App/Cloud haben die auch nicht. Und ja, bevor hier jemand reingrätscht: Mit HA ist die Welt viel besser und das stimmt auch.

    -

    Nachtrag:

    Hier hat mal ein Nutzer von einem ähnlichen Gerät wie die Shellys berichtet. Das Gerät saldiert korrekt, hat allerdings nur WLAN:

    Kuschelmonschter
    10. April 2025 um 18:54

    Pro Phase misst der Shelly m.E die Energie sehr korrekt und da die Gesamtleistung auch korrekt gerechnet wird, bräuchte man nur einen „L4“

    Man möchte aber nicht nur die Gesamtenergie wissen, sondern Bezug und Einspeisung getrennt. Man zahlt für Bezug üblicherweise deutlich mehr als man als Einspeisevergütung bekommt - zumindest in Deutschland.

    Weshalb so kompliziert?

    Zusätzlich zu meiner Erklärung oben drüber: Jeder normale 2-Richtungszähler macht das so mit den 2 Zählwerken: 1.8.0 für Bezug, 2.8.0 für Einspeisung.

    Du hast absolut recht. Es ist mir noch nicht mal möglich, diesen Blödsinn in eine Formel zu fassen, die das ungewöhnliche Summieren berschreibt.

    Ich hoffe, ich erschüttere dein Weltbild nicht zu sehr, aber phasenbezogenes Addieren ist noch viel einfacher: Also wieder pro Zeitfenster und so:

    Addiere alle positiven Phasen (als Beispiel wie bei dir L2 + L3) und addiere diesen Wert auf das Bezugszählwerk

    Addiere alle negativen Phasen (bei dir kann es nur L1 sein, wenn man eine dreiphasige PV hat auch mehrere) und addiere diesen Wert auf das Einspeisezählwerk

    Regelmäßig z.B. pro Minute die Werte der beiden Zählwerke für Statistiken etc. als Reihe fortschreiben

    -> fertig - so macht es Shelly aktuell.

    Beide Verfahren kann nicht einmal Merlin der Zauberer ineinander umrechnen, wenn man nur die Reihenwerte kennt. Bei minütlich ist man noch irgendwie nah dran (trotzdem wird die Abweichung immer größer); ist die Auflösung aber 5 Minuten oder größer ist der umgerechnete Wert im Grunde immer ohne Aussage.

    Ja - und in der Tat - ich bin jetzt zwar auch nicht der hauptberufliche Programmierer, aber die Zeile
    Code (L1,Verbrauch + L2,Verbrauch + L3,Verbrauch) − (L1,Einspeisung + L2,Einspeisung + L3,Einspeisung)

    statt
    Code (L1,Verbrauch - L1,Einspeisung) + (L2,Verbrauch - L2,Einspeisung) + (L3,Verbrauch - L3,Einspeisung)

    sollte nun nicht so sehr eine Schwierigkeit darstellen.

    Darum geht es beim Saldieren nicht.

    Korrekt saldieren ist folgendes pro Zeitfenster "rechnen" (am besten 100x die Sekunde):

    L1 + L2 + L3 = Momentan-Leistung

    wenn Momentan-Leistung > 0 diesen Wert auf das Bezugszählwerk addieren

    wenn Momentan-Leistung < 0 diesen Wert auf das Einspeisezählwerk addieren

    Regelmäßig z.B. pro Minute die Werte der beiden Zählwerke für Statistiken etc. als Reihe fortschreiben

    -> fertig

    Ich hoffe, das ist halbwegs verständlich.