Shelly 3EM "Flussrichtung" bei Dreieckschaltung kompensieren

tiermutter

Well-known member
Moin,

nun ereilt mich das nächste Problem mit meinem Wundergerät von shelly:
Momentan betreibe ich es ja jur testweise an einem Drehstromkreis und bislang habe ich auch nur L1 und L2 gegen N verwendet. Nun habe ich eine Dreieckschaltung (L1, L2, L3 ohne N) geschaltet und prompt erzählt mir shelly und demnach auch HA, dass über L3 zwar ein Strom zum verbraucher fließt, weist gleichzeitig aber eine negative Leistung (Summe L1 und L2) aus.
Wie bekomme ich das denn kompensiert, also quasi negiert, damit mir das auch als Verbrauch angezeigt wird? So wie shelly damit umgeht wird mir der Verbrauch in dieser Schaltung ja nun als Einspeisung angezeigt :(
Komplett negieren kann ich hier natürlich nicht, da produktiv über Zweiphasenwechselstrom oder in Sternschaltung ja richtig gezählt wird...
 
So, ich habe nochmal nachgedacht und geprüft:
Entgegen meiner Behauptung / Vermutung wurde in dem Testbetrieb mit L1 und L2 auch niemals N verwendet, sondern ebenfalls nur die beiden Außenleiter.

Die Messungen im Testbetrieb sind allesamt falsch, da das Teil schlichtweg nicht mit 400V Außenleiterspannung kalkulieren kann.
Die Berechnung der Leistung erfolgt also stets auf 230V Basis, wodurch die Leistung aller Verbraucher die zwischen zwei Außenleitern betrieben werden falsch berechnet wird und mit 1,73 (Wurzel 3) multipliziert werden muss, um das richtige Ergebnis zu bekommen.

Dieses generelle Problem lässt sich also nur lösen, indem man ein separates Messgerät jeweils an entsprechenden Verbrauchern einsetzt und selbst Sensoren bastelt, die das entsprechend mit dem Faktor 1,73 umrechnen (oder eben direkt auf 400V-Basis rechnen).
Was genau auf dem zweiten Screenshot passiert bzw von Shelly berechnet wird, bleibt für mich ein Rätsel, man müsste hier auf 9kW kommen, was ich nicht technisch nachvollziehbar hinbekomme. Allein, dass man je nach Betriebsart (Lx und Ly oder Lx, Ly und Lz) die Messwerte unterschiedlich manipulieren müsste, macht das Ganze für einen derartigen Betrieb völlig unbrauchbar, da die gesamten Messwerte ja völlig verfälscht werden.

Was ich nun daraus mache muss ich mir noch überlegen, entweder...
... verkaufe ich den Kram wieder und verbuche es unter "dumm gelaufen".
... verbiete ich den Betrieb von Geräten die mit 3-Phasenwechselstrom betrieben werden.
... schaffe ich mir noch nen Shelly an, der die 3-Phasenwechselstromkreise separat misst, korrigiert und entsprechend in der Gesamtberechnung mit einfließt, wobei ich dann dafür sorgen muss, dass Lz niemals verwendet wird (was sicherlich nicht bei allen Geräten möglich ist).
... ich schließe die gesamte Unterverteilung der Garage aus den Messungen aus, da sich nur hier Drehstromkreise befinden.
... ich schaffe nen weiteren Shelly für die UV Garage an und schließe nur die Drehstromkreise aus.
... ich lebe damit, dass sämtliche Messwerte völlig unbrauchbarer Quatsch sind und erfreue mich der Optik von HA.
 
Ich hätte da noch einen anderen Ansatz...

Wenn ich die Messung wie geplant direkt an der Hauptleitung vornehme wo alles durchgeht und zusätzlich noch den Neutralleiterstrom messe, dann kann ich durch die Differenz vom Strom L1 + L2 + L3 zum Neutralleiterstrom den Stromanteil bestimmen, für den die Leistung mit dem Faktor 1,73 zu versehen ist (bzw. direkt mit 400V gerechnet wird) und diesen Anteil entsprechend in der Berechnung für die Arbeit einfließen lassen.

Demnach würden dann die Leistungsangaben für L1, L2 (und L3) nicht stimmen, wenn eine Last am Drehstrom betrieben wird, dies könnte so kompensiert werden, Beispiel L1:
Code:
WENN
Idiff > 0  ## Idiff = I1+I2+I3-In
DANN
Leistung L1 - (Idiff*230/2)+(Idiff/2*400)  ## Geteilt durch zwei, weil ich meist einen Heizlüfter betreibe, der auf entsprechender Stufe aber nur zwei Phasen nutzt.

Da dadurch die Drehstromleistung (in L1 und L2) ja bereits korrekt enthalten ist, könnten diese Leistungswerte dann auch verwendet werden, um die Arbeit zu bestimmen. Mit der Ausnahme, dass die Leistung bei Verwendung aller drei Phasen ohne N nicht stimmt könnte ich gut leben.

Nun muss ich das nur noch umsetzen... Kann mich dabei jemand mit der Syntax für die zu erstellenden Sensoren unterstützen?
 
Ich hab mir jetzt mal das hier hingedacht, ein WENN DANN brauche ich ja gar nicht:

Code:
     idiff:
        friendly_name: 'Differenz Neutralleiterstrom'
        unique_id: 'idiff'
        value_template: "{{ (states('sensor.l1_current')|float + states('sensor.l2_current')|float + states('sensor.l3_current')|float - states('sensor.NEUTRAL_current')|float)|round(3) }}"
        unit_of_measurement: "A"
        icon_template: mdi:current-ac
Wobei sensor.NEUTRAL_current noch nicht vorhanden ist.

Dann kann ich entweder die Leistungsangaben für L1 und L2 kompensieren, anzeigen und auswerten:
Code:
leistung_komp_l1:
        friendly_name: 'L1 Leistung kompensiert'
        unique_id: 'leistung_komp_l1'
        value_template: "{{ (
        states('sensor.l1_power')|float -
        states('sensor.idiff')|float * states('sensor.l1_voltage') / 2|float +
        states('sensor.idiff') * states('sensor.l1_voltage') * 1,732050807568877 / 2|float)|round(3)
        }}"
        unit_of_measurement: "W"
        icon_template: mdi:flash

Oder ich werte die Leistung für Drehstrom L1 und L2 separat (aber pauschal aufgeteilt) aus und verarbeite sie separat weiter:
(Dann muss von den Angaben der Leistung natürlich trotzdem der falsch berechnete Anteil abgezogen werden)
Code:
 leistung_drehstrom_l1:
        friendly_name: 'L1 Leistung Drehstrom
        unique_id: 'leistung_drehstrom_l1'
        value_template: "{{ (
        states('sensor.idiff') * states('sensor.l1_voltage') * 1,732050807568877 / 2|float)|round(3)
        }}"
        unit_of_measurement: "W"
        icon_template: mdi:flash

Ist das von der Syntax her korrekt?
 
Beim letzten hast Du das schließende Anführungszeichen hinter friendly_name vergessen und mehrzeiliges value_template so:
YAML:
value_template: >-
  {{ Berechnungen }}
Ach und bei den letzten beiden wendest Du float auf 2 an, da vielleicht nochmal Klammern ergänzen (oder jeweils auf die Sensoren anwenden) ;)
 
Ist das ernsthaft alles? Das was ich da gemacht habe war eigentlich nur geraten :D :D

schließende Anführungszeichen hinter friendly_name vergessen
Ok, kein Problem...
und mehrzeiliges value_template so:
beiden wendest Du float auf 2 an
Dann so:
Code:
leistung_komp_l1:
        friendly_name: 'L1 Leistung kompensiert'
        unique_id: 'leistung_komp_l1'
        value_template: >-
        "{{ (
        states('sensor.l1_power')|float -
        states('sensor.idiff')|float * states('sensor.l1_voltage')|float / 2 +
        states('sensor.idiff') * states('sensor.l1_voltage')|float * 1,732050807568877 / 2)|round(3)
        }}"
        unit_of_measurement: "W"
        icon_template: mdi:flash
???
 
Fast. Anführungsstriche drumherum entfernen, einrücken:
YAML:
leistung_komp_l1:
  friendly_name: 'L1 Leistung kompensiert'
  unique_id: 'leistung_komp_l1'
  value_template: >-
    {{ (
    states('sensor.l1_power')|float -
    states('sensor.idiff')|float * states('sensor.l1_voltage')|float / 2 +
    states('sensor.idiff') * states('sensor.l1_voltage')|float * 1,732050807568877 / 2)|round(3)
    }}
  unit_of_measurement: "W"
  icon_template: mdi:flash
Was macht |float eigentlich? Hatte mir das hier irgendwo weggeklaut :D
Einen Wert in float konvertieren - die Sensoren liefern z.b. häufig nur Strings, addierst Du diese werden die Zahlen hintereinander geschrieben. Angenommen, ich habe einen Sensor energy_total mit dem Wert 60.0 und schreibe das so:
YAML:
{{ states('sensor.energy_total') + states('sensor.energy_total') }}
ergibt das 60.060.0 als Resultat. Schreibe ich hingegen
YAML:
{{ states('sensor.energy_total')|float + states('sensor.energy_total')|float }}
ergibt das 120.0 - tendenziell eher erwünscht bei sowas.

In dem Sinne solltest in dem Code vielleicht auch noch eins für den zweiten states('sensor.idiff') spendieren.

Teste den Inhalt von value_template einfach vorher unter Entwicklerwerkzeuge => Template - und dass mir nichts weiter aufgefallen ist bedeutet nicht, dass es so sicher läuft, in Sachen HA bin ich nach wie vor kein Profi ;)
 
Das |float braucht aber auch einen Default. Also einen Wert, der ausgegeben werden kann, wenn zb die angegebene Entität nicht verfügbar ist oder anderweitig Schluckauf hat. Dann wird meist ein 'unavailable' oder 'unknown' gerendert, mit dem |float aber nix anfangen kann und schwups... Log voller Fehler.

Mit definiertem Default sieht es dann so aus:
YAML:
leistung_komp_l1:
  friendly_name: 'L1 Leistung kompensiert'
  unique_id: 'leistung_komp_l1'
  value_template: >-
    {{ (
    states('sensor.l1_power')|float(0) -
    states('sensor.idiff')|float(0) * states('sensor.l1_voltage')|float(0) / 2 +
    states('sensor.idiff')|float(0) * states('sensor.l1_voltage')|float(0) * 1,732050807568877 / 2)|round(3)
    }}
  unit_of_measurement: "W"
  icon_template: mdi:flash

Da haste jetzt überall (0) hinterm |float. Die 0 ist dein Default.
 
aber c&p-Menschen sind halt trotzdem manchmal ein kleines bisschen amüsant


... Und dennoch erstaunlich, was die damit so auf die Beine stellen :D
Aber so lernt man halt, hättest du mir nicht gesagt was das bedeutet, hätte ich früher oder später selbst gesucht und es vorher bestimmt durch komische Werte bemerkt.
Prinzipiell ist sowas hier ja nix neues für mich, die Syntax und entsprechend erforderliche Optionen kenne ich halt noch nicht, aber egal ob irgendwelche scripts oder logische Operationen zusammenabauen mache ich ja schon "ewig"... So viel Neuland ist es daher nicht, auch wenn ich Anweisungslisten nie wirklich gemocht habe...
 
Ich fasse mal kurz zusammen, wollte schon früher antworten aber irgendwie hatte mir das System dies verweigert.
Hier mal was ich schreiben wollte.

Dafür ist der Shelly em3 nicht ausgelegt, denn richtig wäre bei der Dreieck Schaltung auch eine höhere Spannung da Außenleiter zu Außenleiter und nicht Außenleiter zu Null,
Der kann 1/2/3 Außenleiter gegen Null messen
Oder 1/2/3 einzele unabhängige Netzte
Aber Dreieck geht leider nicht, dass kann übrigens auch ein Stromzähler nicht, da hier immer Außenleiter gegen Null.
Der Shelly wie auch der Stromzähler weiß ja nicht wie danach verschaltet ist, ob nur eine oder zwei Phasen belastet sind, das würde ja eine Nullpunkt Verschiebung ergeben dann stimmt die Berechnung wieder nicht.

Dies kam noch dazu...

Zur Info bezüglich 3 Phasen Wechselrichter, die wenigsten davon sind echte 3 Phasen Wechselrichter, die allermeisten davon sind 2 Phasen Wechselrichter mit Last Verteilung.

Ich gehe fest davon aus, würde man eine Vergleichsmessung mit einem Fluke 3 Phasen Stromzange machen, die Werte annähernd der Werte der Shelly Standard Werte entsprechen ohne diese template(en) zu müssen.
 
denn richtig wäre bei der Dreieck Schaltung auch eine höhere Spannung da Außenleiter zu Außenleiter und nicht Außenleiter zu Null,
Ja genau, deswegen versuche ich das zu kompensieren...
Aber Dreieck geht leider nicht, dass kann übrigens auch ein Stromzähler nicht, da hier immer Außenleiter gegen Null.
:unsure:
Ich gehe fest davon aus, würde man eine Vergleichsmessung mit einem Fluke 3 Phasen Stromzange machen, die Werte annähernd der Werte der Shelly Standard Werte entsprechen ohne diese template(en) zu müssen.
Also meinste ich spare mir den Quatsch und lasse es einfach so laufen wie bisher?
Dann müssten sich ja theoretisch die Messungen der Arbeit in HA mit der Messung des Zählers in einem bestimmten Zeitraum decken... das ist ja einfach zu prüfen...
 
Dann würde ich allerdings wieder vor dem Problem stehen, dass mir ja für L3 ein negativer Wert bei der Leistung ausgewiesen wird (bzw. diese Leistung von der Gesamtleistung abzogen wird). Das ist ja auch nicht richtig, ich bekomme ja kein Geld dafür, wenn ich das Teil betreibe :D
Bzw. kommt ja in Summe 0 raus, so wie es dargestellt wird (2. Screenshot im ersten Post): 1,5kW + 1,5kW - 3kW = 0 obwohl hier eigentlich 9kW Last dranhängen...
 
Ich versteh grad nicht so, wo der Unterschied zu einem normalen Drehstromzähler ist. Ein normaler Drehstromzähler misst doch auch den Strom der 3 Phasen und bei der Spannung die 3 Phasen gegen N.
75fd44cc9708e750e030e42fb59338f2.png

... und misst auch richtig bei Drehstromverbrauchern
 
Der Neutralleiter muss natürlich am Zähler angeschlossen sein, und natürlich eine Verbindung zum Potentialausgleich haben, das der auch Null ist, auch wenn du ihn für ein Drehstrommotor nicht brauchst.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.382
Beiträge
45.245
Mitglieder
3.983
Neuestes Mitglied
comm17
Zurück
Oben