76_SMAInverter.pm - Abfrage von SMA Wechselrichter

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

Vorheriges Thema - Nächstes Thema

MiVo69

#435
Nun sieht das ganze schon anders aus...
Kann es mit der unerwarteten Typennummer daran liegen, das dieser Wechselrichter erst 4 Wochen auf dem Markt ist? Vielleicht ist die Firmware eine andere als bei der Sunny Island 4.4-11 Variante?
Gruß Michael

Xguide

Hi Michael,

jetzt sieht es aus wie es aussehen sollte :-)
Fehlermeldungen weg?
Hast Du auskommentiert oder nur Detail-Level verändert?

Der Stand der Typenübersicht ist relativ alt, Heiko (DS-Starter) fügt aber nach kurzer Bestätigung, dass alles funktioniert neue Typennummern und Aliasse hinzu. 
Das hat aber eigentlich keine Auswirkung! Warum Dein SI sich als $sup_EnergyProduction = true meldet, könnte man meiner Meinung nach durch ein erweitertes Logging herausfinden.

[791]             if($sup_EnergyProduction) {
             push(@row_array, "SPOT_ETOTAL ".$inv_SPOT_ETOTAL."\n");
             push(@row_array, "SPOT_ETODAY ".$inv_SPOT_ETODAY."\n");
             }

Das war dann der Auslöser für die Meldungen....

das der SI als "sup_EnergyProduction" erkannt wird passiert hier - vermutlich ist bei dem neuen Ding was anders und er bekommt irgendetwas mitgeteilt.


[580]             elsif ($i eq "sup_EnergyProduction") {
         ($sup_EnergyProduction,$inv_SPOT_ETODAY,$inv_SPOT_ETOTAL,$inv_susyid,$inv_serial) = SMA_command($hash, $hash->{HOST}, 0x54000200, 0x00260100, 0x002622FF);
     }


Man könnte das wie folgt abfangen "if($sup_EnergyProduction && $inv_CLASS ne 8007) "
8007 identifiziert einen Batterie-WR und der kann keine EnergyProduction haben

[791]
             if($sup_EnergyProduction && $inv_CLASS ne 8007) {
             push(@row_array, "SPOT_ETOTAL ".$inv_SPOT_ETOTAL."\n");
             push(@row_array, "SPOT_ETODAY ".$inv_SPOT_ETODAY."\n");
             }



[700]       
              if($sup_EnergyProduction && $inv_CLASS ne 8007) {
             push(@row_array, "etotal ".($inv_SPOT_ETOTAL/1000)."\n");
             push(@row_array, "etoday ".($inv_SPOT_ETODAY/1000)."\n");
             }


Dann könntest du die anderen Zeilen auch wieder rein nehmen.

Vielleicht kann Heiko ja mal nachsehen.


Gruß Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

MiVo69

Habe die 3 Zeilen auskommentiert und Detail-Level auf 2 gesetzt.
Fehlermeldungen waren dann weg.

Nun habe ich die von dir vorgeschlagenen Codeänderungen gemacht, dabei ergeben sich folgende Fehler:

2017.11.11 22:38:00 1: PERL WARNING: Use of uninitialized value $inv_SPOT_ETODAY in concatenation (.) or string at ./FHEM/76_SMAInverter.pm line 1110.
2017.11.11 22:38:00 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 1109.

Gruß Michael


Xguide

Hi,

sitze jetzt nicht mehr am Rechner, kann es mir aber morgen noch mal ansehen. Danke aber für den Hinweis.
Die Fehler hattest Du in der Tat zuvor auch schon, hätte ich dran denken können :-)
Entweder schaust du mal ob man das wie bei den anderen Stellen durch die ClassID abdecken kann oder du kommentierst wieder die drei Zeilen aus, wobei auch da die Mitte reichen sollte.

Gruß Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

MiVo69

Marcel, ich bin leider nicht so Codebewandert, warte dann lieber morgen auf deinen Vorschlag...ist sicherer ;-)

Hast Du Hoffnung per Modbus auch eine Lösung für die beiden zu schreibenden Parameter zu finden?

Erstmal vielen lieben Dank für die prompte Hilfe.
Gruß Michael

Xguide

#440
Hi Michael,

der Rechner war ja noch an :-)

Der sicherste Weg scheint mir doch zu sein an der zuerst gedachten Stelle anzusetzen.
Also mein Vorschlag ist der Folgende, erweitere das If in Zeile 580. Füge folgendes hinzu (&& $inv_CLASS && $inv_CLASS ne 8007)

[580]
elsif ($i eq "sup_EnergyProduction" && $inv_CLASS && $inv_CLASS ne 8007) {
         ($sup_EnergyProduction,$inv_SPOT_ETODAY,$inv_SPOT_ETOTAL,$inv_susyid,$inv_serial) = SMA_command($hash, $hash->{HOST}, 0x54000200, 0x00260100, 0x002622FF);
     }


Denn in SMA_command, wo der Fehler auftritt, ist m.E. nicht sichergestellt das die Inv_Class zur Verfügung steht.

Die anderen Änderungen kannst du drin lassen und das Modul würde auch mit einem PV-Wechselrichter von SMA laufen.

Heiko bitte mal kurz checken und ggf. übernehmen.

Changelog:
Zeile 580 elsif ($i eq "sup_EnergyProduction" && $inv_CLASS && $inv_CLASS ne 8007) {
Zeile 700 if($sup_EnergyProduction && $inv_CLASS ne 8007) {
Zeile 791 if($sup_EnergyProduction && $inv_CLASS ne 8007) {

Add:
my %SMAInverter_devtypes = (
...
9332=> "Sunny Island 4.4 M-12",
...
)

Bezüglich der Steuerung von Parametern grübel ich gerade schon. Kannst Du mir noch mal kurz erklären wo du jetzt die Parameter setzt? Wenn ich es richtig verstanden habe, nicht im Sunny Portal sondern im Webinterface des Sunny Islands oder?

Gruß Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

MiVo69

Super, danke werde das umgehend probieren...

Zu den Parametern...

Die Parameter setze ich im Webinterface des Sunny Island.

Dazu klicke ich auf Geräteparameter, dann Parameter bearbeiten:

1. --> Parameter bearbeiten / Gerät / Eigenverbrauch / Eigenverbrauchserhöhung eingeschaltet / JA oder NEIN
2. --> Parameter bearbeiten / Batterie / Betrieb / Manuelle Ausgleichsladung / Start oder Stop

Anschliessend noch änderungen speichern und fertig...

Das macht halt nur morgens um 5 echt keinen Spass, daher brauche ich auf Dauer eine automatisierte Lösung ;-)

Hänge noch einen Screenshot an...

Xguide

Gib bitte Bescheid ob es soweit funktioniert, dann haben wir das dokumentiert und Heiko baut es nach Durchsicht bestimmt ein.

Bezüglich der Steuerung des SunnyIsland, meine etwas mehr als zwei Jahre alten Geräte haben kein WebInterface :-(
Im Zusammenhang mit Webinterface fällt mir HttpMod ein, ich nutze das aber nur zum Auslesen von Webseiten. Schau dir mal den Wiki-Eintrag dazu an. Dort wurde ein Beispiel gegeben eine Pellet Heizung zu steuern. Vielleicht kann Dir da ja jemand anders helfen.

https://wiki.fhem.de/wiki/HTTPMOD - Kapitel 12

Wenn Du es über Modbus machst, dann suche bei SMA mal nach der Spezifikation für die Register.

Im Loxome Bereich hat sich da jemand ausgibig mit beschäftigt, https://www.loxforum.com/forum/mein-projekt/102108-suche-alternative-zur-sma-steuerung
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

MiVo69

Sieht alles gut aus.
Fehlermeldungen sind weg.
Vielen lieben Dank & eine gute Nacht
Gruß Michael

DS_Starter

Hallo zusammen,

mache zur Zeit etwas Urlaub. Checke das wenn ich wieder online bin.

LG
Heiko
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

Xguide

FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

DS_Starter

#446
Hallo Marcel, @all,

ich habe die Änderungen begutachtet, für gut befunden und in der angehängten Version 2.9.3 eingebaut.
Bitte testet mal die Version bei euch.
Wenn alles klappt checke ich die V ein.

LG,
Heiko
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

Xguide

#447
Hallo Heiko,
Bin gerade knapp 9000km von meinem WR entfernt, da mache ich mal lieber keine Updates.
Gruß aus Fernost,

Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

DS_Starter

Hallo Marcel,

der November scheint ja ein beliebter Reisemonat zu sein um dem Depriwetter zu Hause zu entfliehen.  ;)

Schönen Urlaub !

@Michael, da es dich insbesondere betrifft, gib dann mal bitte Rückmeldung und alle anderen bitte ich natürlich ebenfalls um ein kurzes Statement (wer mag).

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

Xguide

Hallo Heiko,

Da hast Du Recht mit dem Depriwetter...War heute ein schöner sonniger und warmer Tag in Shanghai. In ein paar Stunden geht es aber wieder gen Deutschland.

Gruß Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -