76_SMAInverter.pm - Abfrage von SMA Wechselrichter

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

Vorheriges Thema - Nächstes Thema

MadMax

Meine sieben Wechselrichter liefer korrekte Daten.

1x STP8.0SE
1x STP10.0-3AV-40
1x STP5.0-3AV-40
3x SB3.6-1AV-41
1x SBS2.5-1VL-10

bei dir wären die genauen Typen eventuell noch interesant.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

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

300P

@MadMax:

Ja - die "merkwürdigen" utopischen Werte werden während der "Nichtproduktionzeit" aus den WR gelesen - wenn keine Sonne scheint.  ;)

Am besten fängst du diese im Modul bereits ab und setzt sie auf 0 / 0.000.

Wert (Dez) 4294967295  = (Hex) FFFFFFFF
Wert (Dez) 2147483.648 = (Hex) 20C49B (ohne Nachkommastellen)

SB20

device_dc_insulation    3000000    2024-11-09 12:41:12
device_dc_residual_current    0.004    2024-11-09 12:41:12

SB25

device_dc_insulation    3000000    2024-11-09 12:42:12
device_dc_residual_current    0.003    2024-11-09 12:42:12

SB30

device_dc_insulation    2892041    2024-11-09 12:42:13
device_dc_residual_current    0.009    2024-11-09 12:42:13

SBS30 II

device_dc_insulation    2877683    2024-11-09 12:42:14
device_dc_residual_current    0.009    2024-11-09 12:42:14

SB40

device_dc_insulation    2932359    2024-11-09 12:42:13
device_dc_residual_current    0.009    2024-11-09 12:42:13

SBS25 I

device_dc_insulation    3000000    2024-11-09 12:42:29
device_dc_residual_current    0.005    2024-11-09 12:42:29

SBS25 II

device_dc_insulation    2957897    2024-11-09 12:42:29
device_dc_residual_current    0.006    2024-11-09 12:42:29

Gruß
300P
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

300P

Sorry - hab noch die Typenangabe vergessen.... O:-)
SB2.0-1VL-40
SB2.5-1VL-40
SB3.0-1AV-41 (Sunny Boy 3.0 AV-41)
SB3.0-1AV-41 (Sunny Boy 3.0 AV-41)
SB4.0-1AV-41 (Sunny Boy 4.0 AV-41)
SBS2.5-1VL-10 (Sunny Boy Storage 2.5)
SBS2.5-1VL-10 (Sunny Boy Storage 2.5)
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

MadMax

Alles klar, ist bei vielen Werten so das der WR mit liefert wenn keine sonne da ist.
Werde das noch anpassen.

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

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

300P

Zitat von: MadMax am 09 November 2024, 12:55:35Alles klar, ist bei vielen Werten so das der WR mit liefert wenn keine sonne da ist.
Werde das noch anpassen.

Gruß
Max
Für die BWR ist das aber auch während dieser Zeit "gewünscht"  8)
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

MadMax

Mal so nebenbei, wie steuerst du deine beiden Batteriewechselrichter?

Ich habe ja ein Hybridwechselrichter und ein Batteriewechselrichter.
Bin aktuell zufrieden wie es läuft aber besser geht immer  ;)
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

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

MadMax

Zitat von: 300P am 09 November 2024, 12:56:57
Zitat von: MadMax am 09 November 2024, 12:55:35Alles klar, ist bei vielen Werten so das der WR mit liefert wenn keine sonne da ist.
Werde das noch anpassen.

Gruß
Max
Für die BWR ist das aber auch während dieser Zeit "gewünscht"  8)

Das macht das Modul schon automatisch.
Ich werde nur wie bri anderen Werten unpladieble Daten raus filtern.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

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

buennerbernd

Zitat von: 300P am 09 November 2024, 12:50:31@MadMax:

Ja - die "merkwürdigen" utopischen Werte werden während der "Nichtproduktionzeit" aus den WR gelesen - wenn keine Sonne scheint.  ;)

Am besten fängst du diese im Modul bereits ab und setzt sie auf 0 / 0.000.

Wert (Dez) 4294967295  = (Hex) FFFFFFFF
Wert (Dez) 2147483.648 = (Hex) 20C49B (ohne Nachkommastellen)


2147483.648 A = 2147483648 mA ist Hex 80000000
Modulentwickler von KLF200 und KLF200Node

MadMax

So, hier die Version wo ich die fehlerhaften Werte abfange wenn der Wechselrichter schläft.
Bitte mal bis morgen testen, wenn alles gut ist checke ich die Version ein.

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

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

300P

#1719
Zitat von: buennerbernd am 09 November 2024, 13:48:202147483.648 A = 2147483648 mA ist Hex 80000000

🙈

Gruß
300P
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

300P

Zitat von: MadMax am 09 November 2024, 12:57:45Mal so nebenbei, wie steuerst du deine beiden Batteriewechselrichter?

Ich habe ja ein Hybridwechselrichter und ein Batteriewechselrichter.
Bin aktuell zufrieden wie es läuft aber besser geht immer  ;)

Auszug bzw. attr meines Modbusdevice für die SBS25:

attr MB_SBS25 obj-h40149-expr $val
attr MB_SBS25 obj-h40149-len 2
attr MB_SBS25 obj-h40149-name SBS25_Set_Leistung_W
attr MB_SBS25 obj-h40149-poll once
attr MB_SBS25 obj-h40149-reading Set_Leistung_W
attr MB_SBS25 obj-h40149-set 1
attr MB_SBS25 obj-h40149-type S32F0
attr MB_SBS25 obj-h40149-unpack I>
attr MB_SBS25 obj-h40151-expr $val
attr MB_SBS25 obj-h40151-name SBS25_Set_Aktiv
attr MB_SBS25 obj-h40151-poll 1
attr MB_SBS25 obj-h40151-reading Set_Aktiv
attr MB_SBS25 obj-h40151-set 1
attr MB_SBS25 obj-h40151-type U32F0

Meine Logik ist in einem separatem komplexen Eigenbau eingebaut die meine Erzeugung aus BHKW-Leistung, PV-Leistung und den zukünftigen berechneten Verbrauch, den dynamischen Stundenbezugspreis für den evtl. Netzstrombezug etc. berücksichtigt und damit die Batterien zum günstigen Zeitpunkt evtl. lädt.

Hiermit schalte ich das Laden der Batterie EIN/AUS:

sub SMABatteryChargeON()
{
    #Werte für Ladungsbeginn per Modbus an Battery senden
    fhem("set MB_SBS25 Set_Leistung_W -8000"); # bis zu -8000 Watt Netzleistung am Übergabemesspunkt (WR1)
    fhem("set MB_SBS25_2 Set_Leistung_W -8000");  # 0 Watt Netzleistung am Übergabemesspunkt (WR2)
    fhem("set MB_SBS25 Set_Aktiv 802");  # 802 - Steuerung aktiv (WR1)
    fhem("set MB_SBS25_2 Set_Aktiv 802");   # 802 - Steuerung aktiv (WR2)
    ###so geht es aber auch (Test für 30 Minuten - weil so im WR Wartezeit von 30 Minuten extra hinterlegt wenn kein Kontakt mehr zu Fremdsteuerung besteht)################
    #defmod di_Test_Batterie_Laden DOIF ([06:00-06:10]) (set MB_SBS25 Set_Leistung_W 5000) (set MB_SBS25_2 Set_Leistung_W -8000) (set MB_SBS25 Set_Aktiv 802) (set MB_SBS25_2 Set_Aktiv 802)
    #attr di_Test_Batterie_Laden comment ([22:10-22:20] and [BatteryDummy:chargestatus] > 85) (set MB_SBS25 Set_Leistung_W -8000) (set MB_SBS25_2 Set_Leistung_W 5000) (set MB_SBS25 Set_Aktiv 802) (set MB_SBS25_2 Set_Aktiv 802)
    #attr di_Test_Batterie_Laden room 011_MODBUS,025_Tibber,Strompreis->Dynamisch
    #attr di_Test_Batterie_Laden stateFormat timer_01_c01 bis timer_02_c01
    #attr di_Test_Batterie_Laden verbose 5
    #attr di_Test_Batterie_Laden wait 0,10,10,10
}
sub SMABatteryChargeOFF()
{
    #Werte für Ladungsende per Modbus an Battery senden  - (wenn nicht klappt evtl noch delay oder wait einbauen)
    fhem("set MB_SBS25 Set_Leistung_W 0"); # 0 Watt Netzleistung am Übergabemesspunkt (WR1)
    fhem("set MB_SBS25_2 Set_Leistung_W 0");  # 0 Watt Netzleistung am Übergabemesspunkt (WR2)
    fhem("set MB_SBS25 Set_Aktiv 803");  # 803 - Steuerung nicht aktiv (WR1)
    fhem("set MB_SBS25_2 Set_Aktiv 803");   # 803 - Steuerung nicht aktiv (WR2)
    ###so geht es aber auch################
    ###################
    #defmod di_Test_Batterie_Laden_Ende DOIF ([05:40-05:50]) (set MB_SBS25 Set_Leistung_W 0) (set MB_SBS25_2 Set_Leistung_W 0) (set MB_SBS25 Set_Aktiv 803) (set MB_SBS25_2 Set_Aktiv 803)
    #attr di_Test_Batterie_Laden_Ende comment ([22:10-22:20] and [BatteryDummy:chargestatus] > 85) (set MB_SBS25 Set_Leistung_W 0) (set MB_SBS25_2 Set_Leistung_W 0) (set MB_SBS25 Set_Aktiv 803) (set MB_SBS25_2 Set_Aktiv 803)
    #attr di_Test_Batterie_Laden_Ende room 011_MODBUS,025_Tibber,Strompreis->Dynamisch
    #attr di_Test_Batterie_Laden_Ende stateFormat timer_01_c01 bis timer_02_c01
    #attr di_Test_Batterie_Laden_Ende verbose 5
    #attr di_Test_Batterie_Laden_Ende wait 0,10,10,10
}

Mit kleinen Anpassungen ( z.B. mittels gewünschtem +/-Wert als Parametermitgabe bei Aufruf der sub SMABatteryChargeON ) könnte dann mittels individuellem Wert gesteuert werden ob:
A:
...die Batterie geladen wird und dies dann aber per -Wert als Parameter dem Aufruf der sub SMABatteryChargeON mitgeben.
(wie oben z.B. mittels hohem -Wert dann auf jeden Fall vom Netz)

B:
...von / aus der Batterie ins Netz eingespeist werden soll und dies dann aber mittels +Wert als Parameter dem Aufruf der sub SMABatteryChargeON mitgeben.



Achtung:
Der BWR reagiert aber immer nur so "gemächlich" wie er es von Haus aus kann !!

Ich empfehle auf keine Fall "echtzeitgesteuert" die Werte ständig immer wieder zu verändern.
Bei mir schreibe ich so alle 25 Minuten den nächsten Wert, weil im WR eine Wartezeit von 30 Minuten extra von mir hinterlegt ist falls / wenn kein Kontakt mehr zu Fremdsteuerung (FHEM) besteht.

Und wenn die Batterie voll ist dann wird so oder so vom BWR abgeregelt  ;D


Gruß
300P
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

300P

Zitat von: MadMax am 09 November 2024, 14:03:15So, hier die Version wo ich die fehlerhaften Werte abfange wenn der Wechselrichter schläft.
Bitte mal bis morgen testen, wenn alles gut ist checke ich die Version ein.

Gruß
Max

Bislang tagsüber okay.
Melde mich heute Abend noch ob die Eliminierung der Extremwerte bei "keine PV-leistung" okay sind

Gruß
300P
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

MadMax

Hier noch eine kleine Korrektur so das keine "-" im Reading erscheinen sondern einfach der alte Wert erhalten bleibt.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

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

MadMax

Zitat von: 300P am 09 November 2024, 16:09:06sub SMABatteryChargeON()
{
    #Werte für Ladungsbeginn per Modbus an Battery senden
    fhem("set MB_SBS25 Set_Leistung_W -8000"); # bis zu -8000 Watt Netzleistung am Übergabemesspunkt (WR1)
    fhem("set MB_SBS25_2 Set_Leistung_W -8000");  # 0 Watt Netzleistung am Übergabemesspunkt (WR2)
    fhem("set MB_SBS25 Set_Aktiv 802");  # 802 - Steuerung aktiv (WR1)
    fhem("set MB_SBS25_2 Set_Aktiv 802");   # 802 - Steuerung aktiv (WR2)
    ###so geht es aber auch (Test für 30 Minuten - weil so im WR Wartezeit von 30 Minuten extra hinterlegt wenn kein Kontakt mehr zu Fremdsteuerung besteht)################
    #defmod di_Test_Batterie_Laden DOIF ([06:00-06:10]) (set MB_SBS25 Set_Leistung_W 5000) (set MB_SBS25_2 Set_Leistung_W -8000) (set MB_SBS25 Set_Aktiv 802) (set MB_SBS25_2 Set_Aktiv 802)
    #attr di_Test_Batterie_Laden comment ([22:10-22:20] and [BatteryDummy:chargestatus] > 85) (set MB_SBS25 Set_Leistung_W -8000) (set MB_SBS25_2 Set_Leistung_W 5000) (set MB_SBS25 Set_Aktiv 802) (set MB_SBS25_2 Set_Aktiv 802)
    #attr di_Test_Batterie_Laden room 011_MODBUS,025_Tibber,Strompreis->Dynamisch
    #attr di_Test_Batterie_Laden stateFormat timer_01_c01 bis timer_02_c01
    #attr di_Test_Batterie_Laden verbose 5
    #attr di_Test_Batterie_Laden wait 0,10,10,10
}
sub SMABatteryChargeOFF()
{
    #Werte für Ladungsende per Modbus an Battery senden  - (wenn nicht klappt evtl noch delay oder wait einbauen)
    fhem("set MB_SBS25 Set_Leistung_W 0"); # 0 Watt Netzleistung am Übergabemesspunkt (WR1)
    fhem("set MB_SBS25_2 Set_Leistung_W 0");  # 0 Watt Netzleistung am Übergabemesspunkt (WR2)
    fhem("set MB_SBS25 Set_Aktiv 803");  # 803 - Steuerung nicht aktiv (WR1)
    fhem("set MB_SBS25_2 Set_Aktiv 803");   # 803 - Steuerung nicht aktiv (WR2)
    ###so geht es aber auch################
    ###################
    #defmod di_Test_Batterie_Laden_Ende DOIF ([05:40-05:50]) (set MB_SBS25 Set_Leistung_W 0) (set MB_SBS25_2 Set_Leistung_W 0) (set MB_SBS25 Set_Aktiv 803) (set MB_SBS25_2 Set_Aktiv 803)
    #attr di_Test_Batterie_Laden_Ende comment ([22:10-22:20] and [BatteryDummy:chargestatus] > 85) (set MB_SBS25 Set_Leistung_W 0) (set MB_SBS25_2 Set_Leistung_W 0) (set MB_SBS25 Set_Aktiv 803) (set MB_SBS25_2 Set_Aktiv 803)
    #attr di_Test_Batterie_Laden_Ende room 011_MODBUS,025_Tibber,Strompreis->Dynamisch
    #attr di_Test_Batterie_Laden_Ende stateFormat timer_01_c01 bis timer_02_c01
    #attr di_Test_Batterie_Laden_Ende verbose 5
    #attr di_Test_Batterie_Laden_Ende wait 0,10,10,10
}

Ja so mache ich das auch, nur habe ich ein recht komplexes Notify mit Prognose aus dem SolarForcast.

Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

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

300P

Zitat von: MadMax am 09 November 2024, 17:13:33Hier noch eine kleine Korrektur so das keine "-" im Reading erscheinen sondern einfach der alte Wert erhalten bleibt.

Hab zuerst weiterhin die "alten" Werte ("-") gehabt.
Daher dann einmal alle Werte mit "deletereading SB.* device_dc_.*" bei mir gelöscht.

Jetzt kommt wohl kein neuer Wert rein - muss wieder warten bis Morgen  :o
trotz suppressSleep = 1
==>> da ja kein alter Wert da ist   :'(  ;D  :)  ;) 
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.