Ich hatte mich da gestern eingelesen (2.1.8p1).
Überhaupt ist die Shelly-Einbindung m.E. buggy, z.B. wird die klare und sinnvolle Auswahl "alle Werte summiert" vs. "Kanal 0", ... nicht richtig interpretiert: Man muss immer "einen drauf" zählen.
In welcher Forumsecke sollte ich das diskutieren? Patche kann ich gerne liefern.
Leistungserfassung mit Shelly
-
aiole
- Beiträge: 8578
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 157 times
- Been thanked: 169 times
Re: Leistungserfassung mit Shelly
Ich denke, dass du hier bleiben kannst. Patches als Github-PR wären immer am einfachsten. Die werden von der Entwicklung vorab geprüft und auf Github kommentiert.gvz hat geschrieben: Do Okt 09, 2025 3:30 pm In welcher Forumsecke sollte ich das diskutieren? Patche kann ich gerne liefern.
-
gvz
- Beiträge: 94
- Registriert: So Sep 12, 2021 8:28 am
- Wohnort: Grevenbroich
- Has thanked: 9 times
- Been thanked: 7 times
Re: Leistungserfassung mit Shelly
Ein erster Rohentwurf, der gegen meinen Shelly-Zoo und auch die von Proxima mir privat zugeschickten Daten läuft, ist fertig - erst einmal nur für "watt.py":
https://github.com/gvzdus/core/blob/sma ... ly/watt.py
Nein, das Fehlerhandling & Co. muss noch wieder rein, auch mehr Kommentare & Subfunktionen.
Grundidee:
- Weg von konkreten Shelly-Modellen, Featureset abfragen und cachen (dafür wird "components" erstellt und auf Platte gecacht)
Frage(n):
- Das ist jetzt ein größerer Rewrite, ist das für den Original-Autor okay?
- Eigentlich bevorzuge ich immer die geräteinternen Energiezähler, vor allem bei Gen2+, wo die Daten i.d.R. den Reboot des Shellys überleben. Aber aktuell wird in "watt.py" nur die Leistung abgefragt. Wenn ich das jetzt einbauen würde, kriegen die OpenWB-eigenen Zähler ggf. einen Schock. Hast Du eine Meinung dazu?
Was mir noch auffällt: Mit dem sehr an die alte 1.9-Welt erinnernden permanenten Interpreter-Starts wird es auf einem Raspi 3B wohl eher kniffelig, einmal mehr als 10 SH-Geräte zu supporten...
Georg
https://github.com/gvzdus/core/blob/sma ... ly/watt.py
Nein, das Fehlerhandling & Co. muss noch wieder rein, auch mehr Kommentare & Subfunktionen.
Grundidee:
- Weg von konkreten Shelly-Modellen, Featureset abfragen und cachen (dafür wird "components" erstellt und auf Platte gecacht)
Frage(n):
- Das ist jetzt ein größerer Rewrite, ist das für den Original-Autor okay?
- Eigentlich bevorzuge ich immer die geräteinternen Energiezähler, vor allem bei Gen2+, wo die Daten i.d.R. den Reboot des Shellys überleben. Aber aktuell wird in "watt.py" nur die Leistung abgefragt. Wenn ich das jetzt einbauen würde, kriegen die OpenWB-eigenen Zähler ggf. einen Schock. Hast Du eine Meinung dazu?
Was mir noch auffällt: Mit dem sehr an die alte 1.9-Welt erinnernden permanenten Interpreter-Starts wird es auf einem Raspi 3B wohl eher kniffelig, einmal mehr als 10 SH-Geräte zu supporten...
Georg
OpenWB S2 (Touchscreen, RFID, Zähler, 11kW), 10 kWp PV ohne Speicher, ID.3
-
Gero
- Beiträge: 4537
- Registriert: Sa Feb 20, 2021 9:55 am
- Has thanked: 43 times
- Been thanked: 257 times
Re: Leistungserfassung mit Shelly
Das ist ja alles über die Zeit entstanden. Dann kamen die Gen2, dann die Gen3 und alle wurden nach und nach integriert, ohne die nachfolgenden Generationen und deren Antworten zu kennen. Von daher kann ich gut verstehen, dass das Coding nicht so dolle ist. Das coding müsste von @okaegi sein, der auch das ganze smarthome2 gebauut hat.
Die shelly-eigenen Zähler sind m.W. nach ignoriert worden, weil die ersten entweder keinen hatten oder ihn beim reboot verloren haben, was im Sinne vom logging streng monoton steigender Werte genauso gut wie kein Zähler ist. Bevor man da mit Offsets herumhantiert nimmt man einfach einen Simcount.
Die shelly-eigenen Zähler sind m.W. nach ignoriert worden, weil die ersten entweder keinen hatten oder ihn beim reboot verloren haben, was im Sinne vom logging streng monoton steigender Werte genauso gut wie kein Zähler ist. Bevor man da mit Offsets herumhantiert nimmt man einfach einen Simcount.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
-
gvz
- Beiträge: 94
- Registriert: So Sep 12, 2021 8:28 am
- Wohnort: Grevenbroich
- Has thanked: 9 times
- Been thanked: 7 times
Re: Leistungserfassung mit Shelly
Okay, dann lasse ich das so.
Den Code wollte ich jetzt so lassen:
https://github.com/gvzdus/core/blob/sma ... ly/watt.py
Ich gehe jetzt nur noch an das Testing mit dem größeren Zoo.
Zur Idee des Cachings: Eigentlich war die Idee, statt dem großen "Shelly.GetStatus" eher gezielt die Sub-Systeme anzusprechen (z.B. http://192.168.0.12/rpc/EM.GetStatus?id=0). Aber ich lasse das lieber: Zu viel Risiko, und zum anderen wird ja auch Relay-Status und Temperaturen abgefragt, und zudem habe ich einen Cache von 5 Sekunden eingebaut, sodass - wenn z.B. 2 Werte von einem 2PM abgefragt werden, nicht 2 HTTP-Requests auf die gleiche URL abgesetzt werden.
Außerdem gibt es jetzt Infos zur Device-Discovery im Smarthome.log:
Den Code wollte ich jetzt so lassen:
https://github.com/gvzdus/core/blob/sma ... ly/watt.py
Ich gehe jetzt nur noch an das Testing mit dem größeren Zoo.
Zur Idee des Cachings: Eigentlich war die Idee, statt dem großen "Shelly.GetStatus" eher gezielt die Sub-Systeme anzusprechen (z.B. http://192.168.0.12/rpc/EM.GetStatus?id=0). Aber ich lasse das lieber: Zu viel Risiko, und zum anderen wird ja auch Relay-Status und Temperaturen abgefragt, und zudem habe ich einen Cache von 5 Sekunden eingebaut, sodass - wenn z.B. 2 Werte von einem 2PM abgefragt werden, nicht 2 HTTP-Requests auf die gleiche URL abgesetzt werden.
Außerdem gibt es jetzt Infos zur Device-Discovery im Smarthome.log:
Code: Alles auswählen
2025-10-11 11:15:30,978 - Device 1 IP 192.168.0.12: /shelly response {"name":null,"id":"shellypro3em63-fce8c0dacd18","mac":"FCE8C0DACD18","slot":0,"model":"SPEM-003CEBEU63","gen":2,"fw_id":"20250924-062749/1.7.1-gd336f31","ver":"1.7.1","app":"Pro3EM","auth_en":false,"auth_domain":null,"profile":"triphase"}
Device 1 IP 192.168.0.12: /rpc/Shelly.ListProfiles response {"profiles":{"monophase":{"components":[{"type":"em1","count":3},{"type":"em1data","count":3}]},"triphase":{"components":[{"type":"em","count":1},{"type":"emdata","count":1}]}}}
Device 1 IP 192.168.0.12: cached info {"name": null, "id": "shellypro3em63-fce8c0dacd18", "mac": "FCE8C0DACD18", "slot": 0, "model": "SPEM-003CEBEU63", "gen": "2", "fw_id": "20250924-062749/1.7.1-gd336f31", "ver": "1.7.1", "app": "Pro3EM", "auth_en": false, "auth_domain": null, "profile": "triphase", "components": {"em": 1, "emdata": 1}}
OpenWB S2 (Touchscreen, RFID, Zähler, 11kW), 10 kWp PV ohne Speicher, ID.3
-
gvz
- Beiträge: 94
- Registriert: So Sep 12, 2021 8:28 am
- Wohnort: Grevenbroich
- Has thanked: 9 times
- Been thanked: 7 times
Re: Leistungserfassung mit Shelly
So, jetzt reicht es mir aber 
Mir fiel bei den Tests auf, dass bei allen Gen2+-Geräten ja die Authentifizierung nicht mehr läuft (Basic-Auth unsupported ziemlicher Blödsinn ohne Verschlüsselung).
Also habe ich das noch eingebaut - dafür war ein Wechsel auf die "requests"-Library nötig - die wird aber auch im OpenWB-Code verwendet.
Tests durch - ich stelle den PR
Mir fiel bei den Tests auf, dass bei allen Gen2+-Geräten ja die Authentifizierung nicht mehr läuft (Basic-Auth unsupported ziemlicher Blödsinn ohne Verschlüsselung).
Also habe ich das noch eingebaut - dafür war ein Wechsel auf die "requests"-Library nötig - die wird aber auch im OpenWB-Code verwendet.
Tests durch - ich stelle den PR
OpenWB S2 (Touchscreen, RFID, Zähler, 11kW), 10 kWp PV ohne Speicher, ID.3
-
Gero
- Beiträge: 4537
- Registriert: Sa Feb 20, 2021 9:55 am
- Has thanked: 43 times
- Been thanked: 257 times
Re: Leistungserfassung mit Shelly
Hihi. Software ist ja ab und an wie ein Strickpullover, an dem man an einem raushängenden Fädchen zieht....
Trotzdem danke für die Mühe, ich teste im Master auch mal mit meinen Shellies.
Trotzdem danke für die Mühe, ich teste im Master auch mal mit meinen Shellies.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion