ModbusAttr am SolarEdge SE10K-RWB48BFN4 mit Speicher

Begonnen von MartinD, 20 August 2025, 14:45:37

Vorheriges Thema - Nächstes Thema

MartinD

Hallo,
ich versuche hochgradig erfolglos den Modbus auszulesen.

Mein Ziel ist den Tagesertrag von PV-Paneelen zu erfassen.

Device List ergibt

Internals:
   DEF        1 60 192.168.2.40 TCP
   DeviceName 192.168.2.40:502
   EXPECT     idle
   FD         56
   FUUID      688b6b18-f33f-84ec-4946-89700e97d3ce21f8
   IODev      SolarEdge
   Interval   60
   LASTOPEN   1755637046.78877
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.5.6 - 7.11.2023
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         437
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      PV: 0.20 KW, Eigenverbrauch: 0.38 kW, Netz: -0.18 kW, Batterie: 0.00 kW, Ladestand: 100.00 %
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 4
   devioNoSTATE 1
   eventCount 33424
   nextOpenDelay 60
   DICACHE:
     3:
       UNPACK     
       EXPRS:
       EXTRAS:
       FNAMES:
   Helper:
     DBLOG:
       B_Lifetime_Export_Energy_Counter:
         mozart4_DbLog:
           TIME       1755689354.96512
           VALUE      2.825
       B_Lifetime_Import_Energy_Counter:
         mozart4_DbLog:
           TIME       1755689355.12613
           VALUE      3.962
       I_AC_Energy_WH:
         mozart4_DbLog:
           TIME       1755689591.81904
           VALUE      84.52
       M_Leistung_Panele:
         mozart4_DbLog:
           TIME       1755689593.32242
           VALUE      0.09

Die Parameter:

stateFormat {sprintf("PV: %.2f KW, Eigenverbrauch: %.2f kW, Netz: %.2f kW, Batterie: %.2f kW, Ladestand: %.2f %%", ReadingsVal("SolarEdge","I_DC_Power",0),ReadingsVal("SolarEdge","Eigenverbrauch",0), ReadingsVal("SolarEdge","M_AC_POWER",0)/1000, ReadingsVal("SolarEdge","B_Instantaneous_Power",0),ReadingsVal("SolarEdge","B_State_of_Energy",0))}
   userReadings Eigenverbrauch { sprintf("%.2f", ReadingsNum ('SolarEdge' ,'I_DC_Power',0) - ( ReadingsNum ('SolarEdge' ,'M_AC_POWER',0)/1000 + ReadingsNum ('SolarEdge' ,'B_Instantaneous_Power',0) ) )}, M_Leistung_Panele {sprintf("%.2f", ReadingsNum ('SolarEdge' ,'I_AC_Power',0) + ReadingsNum('SolarEdge' ,'B_Instantaneous_Power',0) + (ReadingsNum ('SolarEdge' ,'M_AC_POWER',0)/1000))

Die Readings:
obj-h40083-expr ($val * (10 ** $val[1]))/1000
obj-h40083-len 2
obj-h40083-reading I_AC_Power
obj-h40083-unpack s>s>
—————-
obj-h40100-expr $val * (10 ** $val[1])/1000
obj-h40100-len 2
obj-h40100-reading I_DC_Power
obj-h40100-unpack s>s>
———-
obj-h40206-expr $val * (10 ** ReadingsNum ('SolarEdge' ,'M_AC_Power_SF',0))/100
obj-h40206-reading M_AC_POWER
obj-h40206-unpack s>
———
obj-h40093-expr $val * (10 ** $val[1])/1000
obj-h40093-len 3
obj-h40093-reading I_AC_Energy_WH


I_AC_Energy_WH Liefert schon einen Wert das ich in der SolarEdge-App ablesen kann.

M_Import und M_Export liefern falsche Werte, was aber damit zusammenhängend ist dass ich z.Zt. im NULL-Einspeisung Modus bin (noch kein Zweirichtungs-Zähler vorhanden)

Das Problem bei meinem setup ist:
1. I_DC_Power liefert ständig einen Wert (auch in der Nacht - Energie kommt aus dem Speicher)
2.  I_AC_Power - dito
3. Berechnen im userReading liefert negative Ergebnisse, was natürlich nicht stimmen kann.

Für jeden sachdienlichen Rat wäre ich dankbar.

Mit besten Grüßen

Martin



MartinD

Hallo,

die meisten Fragen würden schon hier gelöst.
Was noch bleibt ist:

M_Import und M_Export liefern falsche Werte.

Wer kann helfen?

Mit besten Grüßen

Martin

Parallix

Wie schon im SF-Thread geschrieben, ist es immer sehr hilfreich, wenn am Ende eines jeden Beitrags eine aussagekräftige Signatur zu finden ist. Auf diese Weise braucht niemand in alten Beiträgen zu suchen, welche Hard- und Software verwendet wird.

Wenn Du die Signatur einmal angelegt hast und z.B. mit WR-Modell u.s.w. befüllt hast, kannst Du die im SF-Thread noch nicht geklärten Fragen hier gerne nochmal stellen.

Übrigens: Möchtest Du nach einem Posting diesem noch etwas hinzufügen, so kannst und Du ein Posting gerne bearbeiten. Inhaltlichen Änderungen solltest Du natürlich entsprechend kennzeichnen.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS