SMAInverter zeigt seltsamen SPOT_ETODAY Wert

Begonnen von eddy242, 15 März 2021, 22:11:43

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo Michael,

ich kann dir bei dem Problem nicht helfen, aber der Richtigkeit halber ...

Zitat
Ich habe mir das Thema jetzt auch mal angesehen, da das ,,alte" SMA-Invertermodul ja nicht mehr dauerhaft gepflegt werden soll.
SMAInverter hat wieder einen aktiven Maintainer "MadMax".

Grüße,
Heiko
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

Elektron

Hallo Heiko,

Cool! Wusste ich garnicht.
Hab nur die Woche gesehen, dass es ein Update gab und dachte Du hättest dich noch einmal erbarmt...

@madmax: vielen Dank für die Übernahme!

Vielen Dank und Grüße Michael

DS_Starter

Ja, habe mich auch gefreut dass er sich jetzt um dieses Modul kümmert.  :) Ich unterstütze ihn in Perl (wenn nötig), aber das SMA Protokoll usw. ist seine Spezialstrecke.

Er liest aber in diesem Thread: https://forum.fhem.de/index.php/topic,56080.0.html

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

habl

Zitat von: Elektron am 29 Juni 2021, 21:29:47
...Ich habe da verschiedene Register probiert, aber da steht eine sehr große Zahl (536870911) drin.

Probiert habe ich die Register 50517, 50535, 30537, in allen drei steht das selbe drin.
(Für das Register 50517 habe ich die Länge auf 4 gestellt.)...

versuche mal das attribute dev-h-defIgnoreExpr (( $val==536870911 ) || ( $val ==2147483648 ) || ( $val ==4294967295 )) zu setzen, damit werden ungültige Werte verworfen.

Ich nutze für Wh das Register 30535 und das geht  ;)

Elektron

Hi habl,

Ich habe das mal ergänzt, aber damit wird das Reading garnicht mehr aktualisiert...

Anbei meine Definition, vielleicht sieht einer meinen Fehler.

defmod MB_Wechselrichter2 ModbusAttr 3 30 192.168.2.192:502 TCP
attr MB_Wechselrichter2 dev-h-defExpr $val & 0x1FFFFFFF
attr MB_Wechselrichter2 dev-h-defIgnoreExpr (( $val==536870911 ) || ( $val ==2147483648 ) || ( $val ==4294967295 ))
attr MB_Wechselrichter2 dev-h-defLen 2
attr MB_Wechselrichter2 dev-h-defPoll 1
attr MB_Wechselrichter2 dev-h-defUnpack N
attr MB_Wechselrichter2 devStateIcon ok:on fault:message_attention warnings:message_attention
attr MB_Wechselrichter2 enableControlSet 1
attr MB_Wechselrichter2 obj-h30201-map 35:fault,303:off,307:ok,455:warning
attr MB_Wechselrichter2 obj-h30201-reading state
attr MB_Wechselrichter2 obj-h30211-map 336:Contact manufacturer, 337:Contact installer, 338:invalid, 887:none
attr MB_Wechselrichter2 obj-h30211-reading Aktion
attr MB_Wechselrichter2 obj-h30517-len 4
attr MB_Wechselrichter2 obj-h30517-reading Tagesertrag_2
attr MB_Wechselrichter2 obj-h30529-reading Gesamtertrag
attr MB_Wechselrichter2 obj-h30535-reading Tagesertrag
attr MB_Wechselrichter2 obj-h30537-reading Tagesertrag_kW
attr MB_Wechselrichter2 obj-h30775-reading Leistung
attr MB_Wechselrichter2 obj-h30953-expr ($val  & 0xFFF) / 10
attr MB_Wechselrichter2 obj-h30953-reading Temperatur
attr MB_Wechselrichter2 room PV-Anlage

setstate MB_Wechselrichter2 ok
setstate MB_Wechselrichter2 2021-06-30 19:01:10 Aktion none
setstate MB_Wechselrichter2 2021-06-30 19:01:10 Gesamtertrag 2492607
setstate MB_Wechselrichter2 2021-06-30 19:01:10 Leistung 64
setstate MB_Wechselrichter2 2021-06-30 18:45:40 Tagesertrag 536870911
setstate MB_Wechselrichter2 2021-06-30 18:45:40 Tagesertrag_2 536870911
setstate MB_Wechselrichter2 2021-06-30 18:45:40 Tagesertrag_kW 536870911
setstate MB_Wechselrichter2 2021-06-30 19:01:10 Temperatur 22.6
setstate MB_Wechselrichter2 2021-06-30 19:01:09 state ok


Vielen Dank und Grüße
Michael

habl

nur ein Versuch, lösche bitte mal das attr MB_Wechselrichter2 dev-h-defExpr $val & 0x1FFFFFFF habe ich bei mir nicht drin

Elektron

Hallo habl,

Hatte ich auch schonmal probiert und eben auch noch einmal gemacht...
...ändert aber leider nichts.

Viele Grüße Michael

Elektron

Ich habe mal Verbose auf 5 gesetzt...
Im Log steht dann:

2021.06.30 21:24:10 5: SW: 00a300000006030377470002
2021.06.30 21:24:10 5: MB_Wechselrichter2: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2021.06.30 21:24:10 5: MB_Wechselrichter2: readFn buffer: 00a300000007030304ffffffff
2021.06.30 21:24:10 5: MB_Wechselrichter2: ParseFrameStart called from ReadFn protocol TCP expecting id 3
2021.06.30 21:24:10 4: MB_Wechselrichter2: ParseFrameStart (TCP, master) extracted id 3, fCode 3, tid 163, dlen 7 and potential data 04ffffffff
2021.06.30 21:24:10 5: MB_Wechselrichter2: HandleResponse called from ReadFn
2021.06.30 21:24:10 5: MB_Wechselrichter2: ParseResponse called from HandleResponse
2021.06.30 21:24:10 5: MB_Wechselrichter2: now parsing response data objects, master is MB_Wechselrichter2 relay is undefined
2021.06.30 21:24:10 5: MB_Wechselrichter2: ParseDataString called from HandleResponse with data hex ffffffff, type h, adr 30535, op read
2021.06.30 21:24:10 5: MB_Wechselrichter2: SplitDataString called from ParseDataString with data hex ffffffff, type h, adr 30535, valuesLen 2, op read
2021.06.30 21:24:10 5: MB_Wechselrichter2: CreateDataObjects called from ParseDataString with objList h30535
2021.06.30 21:24:10 5: MB_Wechselrichter2: CreateDataObjects sortedList h30535
2021.06.30 21:24:10 5: MB_Wechselrichter2: CreateDataObjects unpacked ffffffff with N to 4294967295
2021.06.30 21:24:10 5: MB_Wechselrichter2: ignoreExpr for Tagesertrag evaluated package main; my @val = @{$oRef->{'@val'}};(( $val==536870911 ) || ( $val ==2147483648 ) || ( $val ==4294967295 )) to 1
2021.06.30 21:24:10 5: MB_Wechselrichter2: ParseDataString created 0 readings
2021.06.30 21:24:10 4: MB_Wechselrichter2: HandleResponse done, current frame / read buffer: 00a300000007030304ffffffff, id 3, fCode 3, tid 163,
request: id 3, read fc 3 h30535, len 2, tid 163, master device MB_Wechselrichter2, reading Tagesertrag (getUpdate for Tagesertrag len 2), queued 0.55 secs ago, sent 0.03 secs ago,
response: id 3, fc 3, h30535, len 2, values ffffffff
2021.06.30 21:24:10 5: MB_Wechselrichter2: ResetExpect for HandleResponse from response to idle
2021.06.30 21:24:10 5: MB_Wechselrichter2: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2021.06.30 21:24:10 5: MB_Wechselrichter2: DropFrame called from ReadFn - drop 00a300000007030304ffffffff
2021.06.30 21:24:10 5: MB_Wechselrichter2: ProcessRequestQueue called from Fhem internal timer as queue:MB_Wechselrichter2, qlen 3, request: request: id 3, read fc 3 h30537, len 2, tid 82, master device MB_Wechselrichter2, reading Tagesertrag_kW (getUpdate for Tagesertrag_kW len 2), queued 0.55 secs ago

habl

#23
hi Elektron,

was ich nicht so ganz verstehe, dass das lesen des Registers Gesamtertrag funktioniert aber das vom Tagesertrag nicht. Laut Doku haben beide 2 Registeradressen und den Datentyp U32, FIX 0. Daher müsste es eigentlich funktionieren?!

Besteht die Möglichkeit einmal eine minimale Konfiguration zu testen?

defmod MB_Wechselrichter2 ModbusAttr 3 30 192.168.2.192:502 TCP
attr MB_Wechselrichter2 dev-h-defIgnoreExpr (( $val==536870911 ) || ( $val ==2147483648 ) || ( $val ==4294967295 ))
attr MB_Wechselrichter2 dev-h-defLen 2
attr MB_Wechselrichter2 dev-h-defPoll 1
attr MB_Wechselrichter2 dev-h-defUnpack N
attr MB_Wechselrichter2 enableControlSet 1
attr MB_Wechselrichter2 obj-h30529-reading Gesamtertrag
attr MB_Wechselrichter2 obj-h30535-reading Tagesertrag


VG
  habl

Elektron

Hallo habl,

Vielen Dank für Deine Antwort.
Ich habe das Device neu angelegt.
Mit dem Filter Attribut gesetzt wird das Reading nicht angelegt.
Nach dem Löschen des Filters wird das Reading angelegt, aber mit dem riesigen Wert...

Kann der Grund sein, dass ich zwei identische Wechselrichter parallel angebunden habe?

Vielen Dank und Grüße Michael

Wzut

Heiteres Register Raten bringt IMHO nichts !
Bei SMA sind zwar oft die Nummern bei diversen Typen identisch, aber eben nur oft und nicht immer.
Daher : was sagt denn das schlaue SMA Excel Sheet exakt zu  deinem WR Typ ?
Bzw. es gibt ja auch noch die die 40000er Reihe z.b beim SB5000SE.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Elektron

Hallo zusammen,

Die Exceltabelle habe ich gesucht, aber nicht gefunden.
Habe aber parallel eine Anfrage an SMA geschrieben.

Vielen Dank und Grüße Michael

habl

Zitat von: Elektron am 01 Juli 2021, 18:57:36
Hallo zusammen,

Die Exceltabelle habe ich gesucht, aber nicht gefunden.
Habe aber parallel eine Anfrage an SMA geschrieben.

Vielen Dank und Grüße Michael

der müsste es sein, kein Excel sondern html: https://files.sma.de/downloads/MODBUS-HTML_SBxx-1AV-41-GG10-V13.zip

Gerade bei mir den 64bit Tageswert versucht auszulesen, funktioniert!


defmod PVA_PV2 ModbusAttr 3  2 192.168.200.122:502  TCP
attr PVA_PV2 dev-h-defIgnoreExpr (( $val==536870911 ) || ( $val ==2147483648 ) || ( $val ==4294967295 ))
attr PVA_PV2 dev-h-defLen 2
attr PVA_PV2 dev-h-defPoll 1
attr PVA_PV2 dev-h-defUnpack N
attr PVA_PV2 enableControlSet 1
attr PVA_PV2 obj-h30517-len 4
attr PVA_PV2 obj-h30517-reading Tagesertrag
attr PVA_PV2 obj-h30517-revRegs 0
attr PVA_PV2 obj-h30517-unpack Q>
attr PVA_PV2 obj-h30775-reading Wirkleistung


Elektron

Hallo habl,

Auch der 64Bit Datenpunkt liefert keinen vernünftigen Wert.
Ich warte mal auf die Reaktion von SMA...

Vielleicht haben die ja einen Tipp.

Vielen Dank und Grüße Michael

MadMax

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