76_SMAInverter.pm - Abfrage von SMA Wechselrichter

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

Vorheriges Thema - Nächstes Thema

MadMax

Tja... switch/case ist veraltet? given/when ist seit 5 Jahren "experimental" was macht man da nur?
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:

Ich hab keine Fehlermeldungen oder Auffälligkeiten festgestellt (außer den o.g. 'Warnings')  ;)

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.

siggel

Hallo zusammen, bin neu in diesem Thread. Gibt es eine zentrale Anlaufstelle für die aktuelle Version inkl. Abhängigkeiten, was vorab installiert sein muss?
Hatte hier mal die Version $Id: 76_SMAInverter.pm 29099 2024-11-15 15:04:57Z MadMax $ versucht, aber ein reload liefert:
Can't locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/aarch64-linux-gnu/perl5/5.36 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl ./FHEM/lib) at ./FHEM/76_SMAInverter.pm line 33.
BEGIN failed--compilation aborted at ./FHEM/76_SMAInverter.pm line 33.

Ich habe aktuell die im "offiziellen" FHEM-Update enthaltene Version von August und da scheinen mir ein paar Werte unplausibel (z.B. phase_backup_1_pac xx, aber phase_1_pac 0.yyy scheinen mir ganz unterschiedliche Einheiten zu haben oder ich missverstehe, was der backup-Wert darstellt (am Backup-Ausgang hängt zumindest m.W. nur ein Switch).

Ich würde also gerne den aktuellen Stand testen, aber muss vorher wohl noch Dinge nachinstallieren?
RPi4B, ConBee II, OSRAM/Ledvance Plugs/Switch, Aqara Sensors, IKEA Tradfri Dimmers, Gosund Plugs (Tasmota), Shelly Relays/Plugs/Sensors/Buttons, D1minis (Tasmota/WLED), Bosch Indego, Amazon Echo Dots/Fire Tablets (FTUI), HmIP CCU3/Thermostats/Sensors, OctoPi3B+, SMA HM2.0/STP10.0-3SE-40, BYD HVS 7.7

JoWiemann

#1743
Hallo,

und sudo apt-get install libswitch-perl

sollte Dir weiter helfen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

MadMax

Die Aktuelle Version braucht kein switch mehr.
Außerdem wurde an den Readings vom Backup nix geändert.
Was ist da deiner Meinung nach unplausibel?
Die Dsten vom Backup Anschluss sind leider vom System hersehr ungenau.

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

siggel

Danke für die schnellen Antworten, neuste Version läuft rund (mit den hier schon beschriebenen experimental warnings ;) )

Mit unplausibel meine ich, dass bei trübem Wetter heute die readings folgendermaßen aussahen:
2024-11-27_11:59:07 SMAWechselrichter phase_1_pac: 0.133
2024-11-27_12:04:07 SMAWechselrichter phase_1_pac: 0.125
2024-11-27_12:09:07 SMAWechselrichter phase_1_pac: 0.133
was ich als ~130W Produktionsleistung auf Phase 1 abgegeben deute (Power AC?)
Die Backup-Werte lauten hingegen bei mir:
2024-11-27_11:54:07 SMAWechselrichter phase_backup_1_pac: 23
2024-11-27_12:04:07 SMAWechselrichter phase_backup_1_pac: 47
2024-11-27_12:09:07 SMAWechselrichter phase_backup_1_pac: 23
ohne dass an der Backup-Leitung eine nennenswerte Last hängen sollte (Switch mit Zuleitung, WR und BYDBox), also selbst wenn das Watt statt Kilowatt wären, wäre es merkwürdig.

Oder stellen die Readings etwas ganz anderes dar als ich denke? Oder sind die Backup-Readings einfach komplett unbrauchbar wenn überhaupt nichts dran hängt (ich hatte den Installateur nur so verstanden, dass er den Switch an die Backup-Leitung hängt)?

Setup ist übrigens: STP10.0SE (SMAInverter), HM2.0 (SMAEM), BYD HVS 5.1 (BYDBox). Sieht bis auf gelegentliche Timeouts gut aus. In den Momenten scheint auch das Portal keine Werte zu bekommen. Kann es sein, dass da ab und an FHEM genau den Zeitpunkt trifft, in dem der WR durch den Empfang der HM2.0-Werte geblockt ist?
RPi4B, ConBee II, OSRAM/Ledvance Plugs/Switch, Aqara Sensors, IKEA Tradfri Dimmers, Gosund Plugs (Tasmota), Shelly Relays/Plugs/Sensors/Buttons, D1minis (Tasmota/WLED), Bosch Indego, Amazon Echo Dots/Fire Tablets (FTUI), HmIP CCU3/Thermostats/Sensors, OctoPi3B+, SMA HM2.0/STP10.0-3SE-40, BYD HVS 7.7

MadMax

So, du nutzt also SBFSpotComp, bei phase_backup_1_pac muss ich die Werte dann noch durch 1000 Teilen es werden dir aktuell Watt angezeigt.
Dieser Wert wird aber nur berechnet, der Wechselrichter liefert in 0,1A Schritten den Strom an dem Backup Port und 230V x 0,1A sind ebend 23W weniger kann nicht angezeigt werden.

2024-11-27_11:59:07 SMAWechselrichter phase_1_pac: 0.133
2024-11-27_12:04:07 SMAWechselrichter phase_1_pac: 0.125
2024-11-27_12:09:07 SMAWechselrichter phase_1_pac: 0.133
Die Werte sind doch normal du hast immer Abweichungen zwischen den Phasen.

Bei mir läuft das Modul mit 7 Wechselrichter und ich hole alles 15s Daten ab, meine Verbindung zum Portal ist nicht gestört.

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

MadMax

Hallo Zusammen,

ich habe jetzt given auch wieder raus geworfen und in if/elsif umgebaut.

Das funktioniert immer.
Bitte mal testen, dann checke ich das ein wenn keiner ein Problemn feststellt.

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

@MadMax:

keine Auffälligkeiten bei mir mit der Version vom 01.12.2024

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

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

siggel

#1750
@MadMax Klasse Modul, vielen Dank!

Ein paar Nachfragen und Verbesserungsvorschläge hab ich: Sollte           
push(@commands, "sup_BatteryInfo_Charge");nicht bereits auf detail_level 0 statt erst bei >0 erfolgen, damit man dort bereits alle Watt-Zahlen beisammen hat (also auch bat_p_charge/discharge)?

Wie ist generell die Philosophie, wie man das Modul nutzen sollte? Derzeit nutze ich die Default-Automatik (60s). Mit schwebt aber vor, einmal am Tag detail_level 2 abzufragen. In großer Häufigkeit (z.B. 5s wie im Portal?) nur detail_level 0. Wenn ich dazwischen umschalte (derzeit manuell in der FHEM Oberfläche), verschwinden aber alle Readings, was zumindest bei Werten hinderlich ist, die im Modul akkumuliert werden. Wäre es da denkbar, den detail_level beim get data optional mitgeben zu können?

Wenn ich da selbst etwas experimentiere, welche Werte ich abfrage, muss ich dabei etwas beachten, weil der SMA z.B. eine bestimmte Reihenfolge beim Auslesen voraussetzt? Oder kann ich da ziemlich beliebig zusammenmischen, welche Werte ich in welcher Reihenfolge auslesen möchte? (Daher habe ich noch nicht selbst versucht, ob ich einfach sup_BatteryInfo_Charge vor das "if ($detail_level > 0)" schieben kann, da es vielleicht an eine bestimmte Stelle muss?).

Schließlich noch eine Frage zu pac_max_phase_x. Bei mir sind die gefüllt mit 10 0 0 (STP 10.0 SE). In der Weboberfläche des SMA sehe ich jenes Zahlentripel bei:
  • Nennleistung im Zustand Ok    10.000 W           
  • Nennleistung im Zustand Warnung    0 W           
  • Nennleistung im Zustand Fehler    0 W   
Wenn pac_max_phase_x tatsächlich jene Werte sind, finde ich die Bezeichnung in FHEM irreführend und würde etwas wie pac_max_state_ok/warn/error o.ä. vorschlagen.
RPi4B, ConBee II, OSRAM/Ledvance Plugs/Switch, Aqara Sensors, IKEA Tradfri Dimmers, Gosund Plugs (Tasmota), Shelly Relays/Plugs/Sensors/Buttons, D1minis (Tasmota/WLED), Bosch Indego, Amazon Echo Dots/Fire Tablets (FTUI), HmIP CCU3/Thermostats/Sensors, OctoPi3B+, SMA HM2.0/STP10.0-3SE-40, BYD HVS 7.7

MadMax

Hallo siggel,

ich hole mit alle 15s von meinen sieben Wechselrichtern Daten und zwar alle.
Das macht dem WR nix und FHEM auch nix.

push(@commands, "sup_BatteryInfo_Charge");
Holt keine Leistungswerte, sonder den Ladestand der Batterie in %.

Die Werte für den SE werden mit
push(@commands, "sup_BatteryInfo"); 
abgeholt.
Jedoch nur Strom und Spannung, die Leistung wird dann berechnet.
Sonst müsste ich zwei Werte abholen und dann schauen ob einer größer 0 ist und diesen dann verwenden.
Wäre auch Machbar aber ist von den SI Wechselrichtern her so gewachsen.

Mit den Leistungswerten das gleiche, historisch gewachsen, da umbennen wäre kein Problem, mir ist das egal, kann ich machen aber ich weis welche Leistung meine WR haben, die werte könnten auch entfernt werden.

ZitatWäre es da denkbar, den detail_level beim get data optional mitgeben zu können?
Ja, das wäre denkbar und finde ich auch erlich gesagt keine schlechte Idee.

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

MadMax

Hallo siggel,

ich habe die Funktion mit dem Detail-Level beim get data mal eingebaut.
Funktioniert bei mir.

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

siggel

Hi MadMax,

Zitat von: MadMax am 09 Dezember 2024, 16:42:54Auswählen Erweitern
push(@commands, "sup_BatteryInfo_Charge");Holt keine Leistungswerte, sonder den Ladestand der Batterie in %.
...
Die Werte für den SE werden mit
Code Auswählen Erweitern
push(@commands, "sup_BatteryInfo");  abgeholt.
Jedoch nur Strom und Spannung, die Leistung wird dann berechnet.

ups, dann hab ich den Code missverstanden, ich hab es zugegeben nicht debugged aber hätte gedacht, diesen Teil für den SE als Hybridwechelrichter (8009) zu durchlaufen (Z. 965ff):
elsif ($INVTYPE_NAME =~ /SBS(1\.5|2\.0|2\.5)/xs || $INVCLASS eq "8009")
{
 push(@commands, "sup_BatteryInfo_2");     # Check BatteryInfo Voltage
 push(@commands, "sup_BatteryInfo_Charge");
}
und somit dann die Leistung auszulesen statt zu berechnen (Z. 1088ff):
            
elsif ($i eq "sup_BatteryInfo_Charge") {
 Log3 $name, 5, "$name -> sup_BatteryInfo_Charge";
 ($sup_BatteryInfo_Charge,$inv_BAT_P_Charge,$inv_BAT_P_Discharge,$inv_susyid,$inv_serial)     = SMAInverter_SMAcommand($hash, $hash->{HOST}, 0x51000200, 0x00496900, 0x00496AFF);            
}

Zeilennummern beziehen sich auf dein Update. Werde ich morgen einspielen und Feedback geben. Vielen Dank, auch für die Info, dass häufiges Abfragen problemlos möglich sein sollte.
RPi4B, ConBee II, OSRAM/Ledvance Plugs/Switch, Aqara Sensors, IKEA Tradfri Dimmers, Gosund Plugs (Tasmota), Shelly Relays/Plugs/Sensors/Buttons, D1minis (Tasmota/WLED), Bosch Indego, Amazon Echo Dots/Fire Tablets (FTUI), HmIP CCU3/Thermostats/Sensors, OctoPi3B+, SMA HM2.0/STP10.0-3SE-40, BYD HVS 7.7

siggel

Zitat von: siggel am 10 Dezember 2024, 00:11:54zugegeben nicht debugged
Jetzt aber mit verbose 5 probiert:
2024.12.10 09:24:00.806 5: SMAWechselrichter -> sup_BatteryInfo_Charged.h. es verhält sich doch so wie von mir vermutet und von daher wäre es nach meinem Verständnis möglich auf detail_level 0 die Lade/Entladeleistung des Akkus abzufragen, indem man
elsif ($INVTYPE_NAME =~ /SBS(1\.5|2\.0|2\.5)/xs || $INVCLASS eq "8009")
{
 push(@commands, "sup_BatteryInfo_Charge");
}
vor das if ($detail_level > 0) zieht.
RPi4B, ConBee II, OSRAM/Ledvance Plugs/Switch, Aqara Sensors, IKEA Tradfri Dimmers, Gosund Plugs (Tasmota), Shelly Relays/Plugs/Sensors/Buttons, D1minis (Tasmota/WLED), Bosch Indego, Amazon Echo Dots/Fire Tablets (FTUI), HmIP CCU3/Thermostats/Sensors, OctoPi3B+, SMA HM2.0/STP10.0-3SE-40, BYD HVS 7.7