SMA Wechselrichter - brauche ein wenig Hilfe...für Modul

Begonnen von svenkoethe, 05 September 2013, 08:33:03

Vorheriges Thema - Nächstes Thema

Ragnar Eld

#315
Hallo allerseits,

mein Problem ist folgendes:
SBFspot gibt bei AC Spot Data unter Total Pac positive und negative Werte aus. Ich bin nicht sicher, ob bei mir alles "normgerecht" verdrahted wurde, denn mir fehlen ansonsten jede Menge Daten, die ae genullt zurück kommen:

ZitatReading config '/usr/local/bin/sbfspot.3/SBFspot.cfg'
Wed Jul 27 08:44:27 2022: INFO: Starting...
sunrise: 05:38
sunset : 20:59
Connecting to Local Network...
Initialising...
SUSyID: 125 - SessionID: 936412591
Device IP address: 192.168.23.137 from config
Inverter replied: 192.168.23.137 -> 332:XXXXXXXXXXXXXXXXXXXX
Logon OK
SUSyID: 332 - SN: XXXXXXXXXXX
Device Name:      SN: XXXXXXXXXXXX
Device Class:     Batterie-Wechselrichter
Device Type:      Sunny Island 4.4M
Software Version: 03.02.06.R
SUSyID: 332 - SN: XXXXXXXXXXX
Batt. Charging Status: 14%
SUSyID: 332 - SN: XXXXXXXXX
Batt. Temperature: 25.0°C
Batt. Voltage    : 52.80V
Batt. Current    : -11.600A
SUSyID: 332 - SN: XXXXXXXXX
Grid Power Out : 0W
Grid Power In  : 7W
SUSyID: 332 - SN: XXXXXXXXXX
Device Status:      Warnung
Packet status: 21
SUSyID: 332 - SN: XXXXXXXXXXXXX
Device Temperature: Information liegt nicht vor
Packet status: 21
getEnergyProduction returned an error: 21
Packet status: 21
getOperationTime returned an error: 21
Packet status: 20
getSpotDCPower returned an error: 20
Packet status: 20
getSpotDCVoltage returned an error: 20
SUSyID: 332 - SN: XXXXXXXXXXXX
DC Spot Data:
        MPPT 1 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
        MPPT 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
        Calculated Total Pdc:   0.000kW
AC Spot Data:
        Phase 1 Pac :  -0.600kW - Uac: 228.00V - Iac:  2.900A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :  -0.650kW - Calculated Pac:  -0.600kW
        Efficiency  :    0.00%
SUSyID: 332 - SN: XXXXXXXXXXX
Grid Freq. : 50.00Hz

zumindestens über die Total Pac kann ich sinnvolle Sachen anstellen. Es macht aber schon einen Unterschied ob ich darauf reagiere, dass die Batterie geladen oder entladen wird. :)

Ich vermute den "Fehler" in der 98.SMAUtils.pm. Ich vermute außerdem, dass es in Zeile 254 passiert.
my @line_readings = split("-",$linesvalue);
(weil das minus als vorzeichen als Stringtrenner genutzt wird)

Kann jemand helfen?

Ragnar Eld

#316
Habe die Lösung nun selbst gefunden. Ich bin kein Programmierer also biete ich auch keinen Patch an, weil ich entsprechende Konventionen nicht kenne. ABER:

Zeile 276:
$value =~ /(\d+(?:\.\d+)?)/;


vernichtet das Vorzeichen.

Wenn der Regex so angepasst wird:
$value =~ /(-?\d+(?:\.\d+)?)/;

(also ein führendes optional '-') zugefügt wird, klappt's.

Es wäre famos, wenn das in den Code rein kommt.

DS_Starter

Ich habs übernommen. Liegt in meinem contrib.
Zum Download in der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/98_SMAUtils.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/98_SMAUtils.pm"


Ich weiß nicht ob der Code noch woanders gepflegt wird. Es ist kein offizielles Modul und ich glaube es kümmert sich keiner so recht darum.

Proxmox+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