76_SMAInverter.pm - Abfrage von SMA Wechselrichter

Begonnen von sct14675, 28 Juli 2016, 11:01:16

Vorheriges Thema - Nächstes Thema

RiG

Hallo Max,

ich hab einen SUNNY TRIPOWER 8.0.
Zwischen 0:00 und 0:10 sollte der Wert vom Vortag ja gespeichert werden.
2022.10.08 00:02:39 4: TRIPOWER - ###############################################################
2022.10.08 00:02:39 4: TRIPOWER - ##########  Begin of new SMAInverter get data cycle  ##########
2022.10.08 00:02:39 4: TRIPOWER - ###############################################################
2022.10.08 00:02:39 4: TRIPOWER - timeout cycles since module start: 272
2022.10.08 00:02:39 4: TRIPOWER -> Start BlockingCall SMAInverter_getstatusDoParse
2022.10.08 00:02:39 4: TRIPOWER - current time: 08.10.2022 00:02:39
2022.10.08 00:02:39 4: TRIPOWER - operation time begin: 08.10.2022 06:54:29
2022.10.08 00:02:39 4: TRIPOWER - operation time end: 08.10.2022 19:14:27
2022.10.08 00:02:39 5: TRIPOWER -> row_array before encoding:
2022.10.08 00:02:39 5: TRIPOWER -> modulstate sleep
2022.10.08 00:02:39 5: TRIPOWER -> opertime_start 08.10.2022 06:54:29
2022.10.08 00:02:39 5: TRIPOWER -> opertime_stop 08.10.2022 19:14:27
2022.10.08 00:02:39 5: TRIPOWER -> state done
2022.10.08 00:02:39 4: TRIPOWER -> BlockingCall SMAInverter_getstatusDoParse finished
2022.10.08 00:02:39 4: TRIPOWER -> Start BlockingCall SMAInverter_getstatusParseDone
2022.10.08 00:02:39 5: TRIPOWER -> row_array after decoding:
2022.10.08 00:02:39 5: TRIPOWER -> modulstate sleep
2022.10.08 00:02:39 5: TRIPOWER -> opertime_start 08.10.2022 06:54:29
2022.10.08 00:02:39 5: TRIPOWER -> opertime_stop 08.10.2022 19:14:27
2022.10.08 00:02:39 5: TRIPOWER -> state done
2022.10.08 00:02:39 4: TRIPOWER -> BlockingCall SMAInverter_getstatusParseDone finished


Und hier der erste Abruf der Daten:
2022.10.08 06:54:46 3: TRIPOWER - Send request 0002005400012600FF222600 to sma30039XXXX on port 9522
2022.10.08 06:54:46 5: TRIPOWER - send: 534D4100000402A00000000100260010606509A09801483A0CB30000E90023BB590700000000000003800002005400012600FF22260000000000
2022.10.08 06:54:46 5: TRIPOWER - Received: 534d4100000402a00000000100460010606511a0e90023bb590700a09801483a0cb3000000000000038001020054000000000100000001012600fc5840639c04f001000000000122260095024163ffffffffffffffff00000000
2022.10.08 06:54:46 5: TRIPOWER - Data identifier 9729
2022.10.08 06:54:46 5: TRIPOWER - Data SPOT_ETOTAL=32507036 and SPOT_ETODAY=-


Brauchst du sonst noch was aus dem Log?

Gruss
Andreas

RiG

Hallo Max,

ich habs heute nochmal etwas untersucht. Bei deiner letzten Version etwas weiter oben hast du ja folgende Zeile eingebaut:
if(($inv_SPOT_ETODAY eq -2147483648) || ($inv_SPOT_ETODAY eq 0xFFFFFFFF) || $inv_SPOT_ETODAY <= 0) {$inv_SPOT_ETODAY = "-"; }

Den elsif danach hab ich jetzt angepasst und ein if daraus gemacht:
     if (length($data) >= 82) {
         $inv_SPOT_ETODAY = unpack("V*", substr ($data, 78, 4));
                 
                 if(($inv_SPOT_ETODAY eq -2147483648) || ($inv_SPOT_ETODAY eq 0xFFFFFFFF) || $inv_SPOT_ETODAY <= 0) {$inv_SPOT_ETODAY = "-"; }
     }
     if($inv_SPOT_ETODAY eq "-" && $inv_SPOT_ETOTAL ne "-") {


Dadurch wird die Berechnung durchgeführt wenn ungültige Werte kommen und somit bekomme ich wieder gültige Werte.

Gruss
Andreas

MadMax

Hallo Andreas,

sehr interessant.
Dein STP8.0 sollte ja baugleich mit meinem STP10.0 sein, beide liefern auch die gleiche Telegrammlänge bei der Abfrage ETOTAL/ETODAY.
Meiner liefert dort plasieble werte deiner nur "ffffffff".
Mich wundert das es vorher funktioniert hat.

Naja, ich habe deine Lösung getestet und es funktioniert so und fängt alle möglichkeiten ab.
Somit habe ich dies direkt übernommen, auch bei BAT_LOADTOTAL/BAT_LOADTODAY.

Danke für das analysieren und Lösen.

Ich habe eine neue Version mit allen erweiterungen und Fehlerbehebungen eingecheckt.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

RiG

Hallo Max,

vielen Dank.
Ja ich versteh auch nicht warum es nicht mehr funktioniert hat.

Gruss
Andreas

RiG

Hallo Max,

muss der else Zweig nicht noch raus nachdem wir den elsif geändert haben? Sonst werden doch empfangene Werte überschrieben, wenn die Berechnung nicht durchgeführt wird.
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/76_SMAInverter.pm?rev=26516#L1382
         else
         {
                $inv_SPOT_ETODAY = "-";
         }


Gruss
Andreas

DS_Starter

#1070
Guten Morgen,

ich habe gestern das Modul upgedated.
Heute früh stelle ich fest dass das Reading etoday nicht mehr richtig berechnet wird.
Es steht jetzt auf dem Wert von gestern Abend mit dem Timestamp 2022-10-11 00:00:16


2022-10-10 19:44:57   etoday          29.414


Das klappt also nichtt mehr.

EDIT: bin zurück auf die v2.16.1. Damit ist es wieder ok.

LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

fhemfreund

Gleiches etoday Problem bei mir. Bin wieder auf

76_SMAInverter.pm         24737 2021-07-12 16:46:51Z MadMax

zurück und der Fehler ist weg.

Andreas

RiG

Hallo,

heute hatte ich auch das Problem. Scheinbar ist jetzt die Antwort vom Wechselrichter wieder kürzer. Nach dem entfernen vom else Zweig wie oben geschrieben hat es wieder funktioniert.

Gruss
Andreas

Dracolein

Habe gleichen Fehler bei mir festgestellt soeben

FVERSION 76_SMAInverter.pm:v2.18.2-s26516/2022-10-09

Woher bekomme ich eine ältere Version?
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

MadMax

Hallo Andreas,

du hast recht! Danke.
Ist korrigiert und eingechekt.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

DS_Starter

Zitat
Woher bekomme ich eine ältere Version?

Es gibt doch den restore Befehl.

Ansonsten habe ich die lauffähige V in mein contrib geladen.
Zum Download in der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/76_SMAInverter.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/76_SMAInverter.pm"
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Dracolein

Eine Frage:
Ich habe zwei Tripower-WRs mit je 2 MPP-Trackern im Einsatz. Während ein WR die Hausdachfläche (West) auf 2 Strings verteilt, verarbeitet, ist am zweiten WR derzeit nur 1 String mit einer weiteren Fläche (Süd) in Benutzung. In Kürze wird der freie String für eine insgesamt dritte PV-Fläche (Südwest) belegt.
Aktuell logge ich von beiden WRs den Parameter SPOT_PACTOT und generiere hübsche Grafiken, die tolle Leistungskurven über den Tag erzeugen und darstellen, zu welchen Tageszeiten welche PV-Flächen wieviel Leistung erzeugen (Beispielgrafik im Anhang, relevant sind nur pinke und gelbe Graphen). Dieses Schauspiel würde ich gern mit der kommenden dritten PV-Fläche auch nutzen wollen, bekomme aber das erwartungsgemäße Problem, dass SPOT_PACTOT die Summe aller Strings im WR darstellt.

Nun gibt es noch SPOT_PDC1 und SPOT_PDC2, also die aktuellen Stringspannungen auf Gleichspannungsseite, immerhin getrennt.  Natürlich ist DC-Spannung1 + DC-Spannung2 nicht gleich AC-Spannung, das ist klar. Könnte man grobe Annahmen treffen, wie das Verhältnis zwischen DC und AC, bzw. die typische Verlustleistung in etwa ist?
- siehe Screenshot vom Datenblatt-
Meine Vorgehensweise wäre es, zwei Userreadings zu generieren, die ganz simpel SPOT_PDC1 und SPOT_PDC2 mit 95% als angenommenem Effizienz-Mittelwert multipliziert werden und im Ergebnis zwei AC-Spannungen voneinander separiert simulieren. 
Oder ist mein Gedanke samt Resultat Quatsch?

Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

MadMax

Hallo,

Das kannst so machen, ich "separiere" mir das auch so bei meinem Hybridwechselrichter da PAC durch die Batterie Ladung und Entlastung verfälscht wird.

Gruß Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

R1F800

#1078
Guten Morgen zusammen.
Ich habe seit Freitag nun auch zwei STP im, Einsatz.
Leider bekomme ich die Definition des Gerätes in fhem nicht so definiert, dass die Kommunikation funktioniert.

Vor der IP will das ;odul ja ein PIN haben.
"Wechselrichter mit Webinterface: Das im Webinterface geänderte Passwort gilt auch für die Devicedefinition. "

Diese wurde im WR selbst noch nicht gesetzt?
Oder was mache ich falsch?

Ich melde mich ja mit Username passwort im Frontend an.

fhemfreund

Zitat von: MadMax am 11 Oktober 2022, 18:42:20
Hallo Andreas,

du hast recht! Danke.
Ist korrigiert und eingechekt.

Gruß
Max

@Max,
habe die Tage auch nochmal die letzte Version


76_SMAInverter.pm         26524 2022-10-11 16:41:18Z MadMax


gestestet und habe immer noch das etoday Problem, sprich es wird das Reading nicht mehr upgedated. Mit version


76_SMAInverter.pm         24737 2021-07-12 16:46:51Z MadMax


tritt der Fehler nicht auf.

Andreas