- Notifications
You must be signed in to change notification settings - Fork812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Shelly: Code cleansing and measure logic optimization following installation standards#18841
base:master
Are you sure you want to change the base?
Shelly: Code cleansing and measure logic optimization following installation standards#18841
Conversation
Brauchts das denn wirklich? Warum kann man bei einer Installation mit falscher Richtung nicht einfach die Sensoren drehen? Sind die wirklich hart montiert? Alternativ: wäre ein „invert“ oder „scale“ evtl. ein besserer Parameter? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Mein Gedanke hinter dem Parameter war, dass bestehende Konfigurationen von evcc Shelly Nutzern nichts ändern müssen. Bei invert oder scale könnten Teile Probleme bekommen, da es dann darauf ankäme wie die Messzange montiert ist. Können es aber gerne invert nennen, den Wert dann mit -1 multiplizieren und als breaking Change markieren.
Bei den Energiezählern ändert sich nicht das Vorzeichen aber das Zählregister (Import vs. Export). |
Die Zange ist doch schnell gedreht, oder? Ich würde unterstellen, dass ein Grossteil der Anwender es i.S. Der App installiert hat. |
@premultiply der PR adressiert nur den Power Messwert Für TotalEnergy der Energiezähler bilde ich die Differenz der beiden Zählregister Lines 145 to 151 inff9a6c3
Mein Ziel war möglichst viele Shelly Typen zu unterstützen. |
Oha. Das sollten wir dann aber auch noch ändern. |
Also alle die ich kenne und die einen Shelly EM zB auch in anderen HEMS Systemen nutzen, klemmen die Zange idR so an, dass der Wert beim Zielsystem korrekt ist (also selbstverständlich ein positiver Wert für den Ertrag). Aber wie schon mal an anderer Stelle geschrieben, passe mich da gerne der Allgemeinheit an und klemme die Zange auch falsch herum an. Hauptsache es werden nicht positive und negative Werte als PV-Ertrag gewertet :-) |
@premultiply hast du ein Beispiel irgendwo im Code, das ich mir anschauen kann? |
Ok, schau ich mir an. Würde dann aber nicht den ganzen Shelly Code in eine Custom Meter Umsetzung migrieren, sondern usage als Parameter mitnehmen und dann entsprechend im go Code eine Fallunterscheidung machen. Und die es wird immer noch das Problem bleiben, dass die Messung vom Einsatz Mess-Zange abhängig ist. |
Das ist leider nicht immer so ganz einfach, denn da gibt es mindestens zwei unterschiedliche Sichtweisen. Im Elektrobereich werden separate Zähler genormt immer so verbaut, dass aus Sicht des Anschlusses zum übergeordneten Netz als definierte Wurzel der Verbrauch positiv (A+) und die Einspeisung negativ (A-) erfasst wird. Das ist völlig eindeutig. Die Erwartungshaltung des Normalanwenders ist jedoch häufig abweichend und eher aus der Hauptfunktion des jeweiligen Systems betrachtet. |
Wie gesagt, passe mich da gerne an wie es für evcc am besten passt. Notfalls drehe ich die Werte halt in meinem HEMS. Aber genau wegen dem was du geschrieben hast (Eigenverbrauch des Erzeugers) habe ich den Shelly ja als custom meter umgesetzt. |
@mucki12 +@premultiply ich switch mal aus dem PR hier zurück in unsere Diskussion. Diskutiert ihr bitte dort mit mir weiter. Habe Fragen. :-) |
@premultiply +@andig können wir nicht diesen PR von der neuen Diskussion bezüglich der korrekten Abbildung der TotalEnergy abkoppeln und mergen? Mit dem invert Parameter ist jeder Nutzer in der Lage den Power Wert entsprechend seines UseCases zu ändern. |
Energy ist ein anderes Thema. Ich vermisse hier aber die Entscheiden, das per BC einfachimmer beim EM zu invertieren. Falls der sich die Implementierung teil würde ich zu scale statt invert tendieren. |
Können wir schon, gehört aber andererseits auch zusammen. |
Alles gehört zusammen. Kann man trotzdem schön einzeln lösen und die diffs klein halten. Macht auch die Fehlersuche viel einfacher (auch wenns hier nicht relevant ist). |
Bitte nicht mergen! Bin am Testen ... |
Sieht jetzt m.E. gut aus. Die Shellies liefern jetzt wie von@premultiply empfohlen abhängig von der
Für alle Nutzer, die ihre Shellies falsch/verdreht angeschlossen haben, bieten wir die |
Ich habs nochmal durch geschaut. Es ist unglücklich, dass wir die usage (Logik) jetzt in Connection (Technik) mit drin haben. Schöner wäre es, die Usage auf Ebene des Meter/Chargers zu halten und bei Bedarf ein anderes API der Connection aufzurufen. |
OK, verstehe, dann baue ich es entsprechend um. |
@andig +@premultiply: Um die Sonderimplementierung des ShellyEnergyMeters zurückbauen zu können, habe ich die Funktionen für die PhaseVoltages, PhaseCurrents und PhasePowers in das Shelly Meter integriert. Frage: Sind negative Werte für die PhasePowers API erlaubt, oder muss ich sicherstellen, dass es positive Werte sind? Beispiel: shelly-pro-em-50-0-pv---------------------Power: 332WEnergy: 144.8kWhCurrent L1..L3: 1.47A 0A 0AVoltage L1..L3: 227V 0V 0VPower L1..L3: -332W 0W 0W |
Negative Stromwerte sind sogar bevorzugt. 🙂 |
@andig ich werde aus dem integration test Fehler nicht schlau. Hast du eine Idee was die timeouts auslösen könnte? |
Hallo@andig , ich hab die ganze historisch nicht nur durch mich gewachsene Shelly Codebasis mal konsolidiert. Die Wartung und Pflege sollte jetzt wesentlich einfacher sein. Ich bräuchte nur Unterstützung beim lokalisieren des Integration Fehlers. |
@premultiply : Ok :-) Eine Frage noch zur Sicherstellung positiver Power Werte im Falle das Einsatzes eines Shelly als PV oder Batterie Meters, was ich auf Basis deines Feedbacks eingebaut habe: |
Robodrill1131 commentedApr 2, 2025
Habe mir gerade eine Batteriebox ( Stromspeicher) gebaut und will die Werte über ein Shelly PM mini Gen3 erfassen, leider macht mir auch hier die Vorzeichenbehandlung von evcc ein Strich durch die Rechnung und die Ladeleistung wird als entladen angezeigt, obwohl der Wert vom Shelly negativ ausgegeben wird. |
@Robodrill1131: Das spricht doch dann für die Sicherstellung des positiven Powerwertes nur für die PV usage ... @premultiply +@andig : richtig? Dann nehme ich die Vorzeichenbehandlung für battery aus der Logik raus. |
@Robodrill1131 könntest du mir eine evcc trace Ausgabe deines Shelly PM mini Gen3 schicken. |
Robodrill1131 commentedApr 2, 2025
@thierolm JSON Auszug mach ich mich morgen dran. |
@naltatis könntest du bitte bei Gelegenheit auch mal über den "Integration" Testfehler schauen? |
Hab' das Problem im /shelly Simulator gefunden:https://github.com/thierolm/evcc/blob/1413c4bd9de34999e8c946228b2d5ea5f633634f/tests/simulator/api.js#L74 |
Mit den UI Tests über npx playwrigth test habe ich wieder was dazu gelernt :-) |
Refer to discussion#18824