76_SMAInverter.pm - Abfrage von SMA Wechselrichter

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

Vorheriges Thema - Nächstes Thema

Xguide

Hallo Wzut,

wo genau liegt jetzt Dein Problem, bzw. welches Reading fehlt dir? Das Modul ist generisch aufgebaut und nicht jeder WR kann alle Informationen zur Verfügung stellen.
Ich habe bei mir schon lange kein verbose 5 mehr laufen lassen, kann mich aber an gleiche Meldung erinnern.

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 -

Xguide

Habe gerade übrigens überprüft bei welcherm Commando deine erste Meldung auftaucht:

Comandstack:


     my @commands = ( "sup_TypeLabel",                        # Check TypeLabel -->da
                                     "sup_EnergyProduction",           # Check EnergyProduction -->da
         "sup_SpotDCPower",                 # Check SpotDCPower -->da
         "sup_SpotACPower",                 # Check SpotACPower -->da
     "sup_SpotACTotalPower",         # Check SpotACTotalPower -->da
     "sup_ChargeStatus"                # Check BatteryChargeStatus -->nicht da
     );


Bei sup_ChargeStatus bekommst du die erste Meldung, wenn Dein PV-WR jetzt ein Batterie-WR wäre, dann würdest du den Ladezustand bekommen.

Merke: Meldung muss nicht Fehler bedeuten. Der WR sagt Dir nur, dass er mit dem Kommando nichts anfangen kann....
Alles <= LogLevel 2 weist schon eher auf einen Fehler hin.

Prüfen wir kurz weiter ob wir hier nicht auf dem Holzweg sind, Commands für Detail Level = 1

     push(@commands, "sup_SpotDCVoltage");         # Check SpotDCVoltage -->da
     push(@commands, "sup_SpotACVoltage");         # Check SpotACVoltage -->da
     push(@commands, "sup_BatteryInfo");           # Check BatteryInfo -->nicht da


Dann kommt noch Detail Level = 2, allerdings sind da alle da.....

Zitat
     if($detail_level > 1) {
          # Detail Level 2 >> get all data
     push(@commands, "sup_SpotGridFrequency");     # Check SpotGridFrequency
          push(@commands, "sup_OperationTime");         # Check OperationTime
          push(@commands, "sup_InverterTemperature");   # Check InverterTemperature
          push(@commands, "sup_MaxACPower");            # Check MaxACPower
          push(@commands, "sup_MaxACPower2");           # Check MaxACPower2
          push(@commands, "sup_GridRelayStatus");       # Check GridRelayStatus
          push(@commands, "sup_DeviceStatus");          # Check DeviceStatus
     }
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 -

Wzut

Zitat von: Xguide am 30 August 2018, 13:55:47
Merke: Meldung muss nicht Fehler bedeuten. Der WR sagt Dir nur, dass er mit dem Kommando nichts anfangen kann....
Alles <= LogLevel 2 weist schon eher auf einen Fehler hin.
Danke für die Belehrung, aber so schlau war ich als "auch" Modulautor vorher schon .... :)
D.h. wenn ich ein Geräte habe das eine Funktion X nicht unterstützt, dann muss man es auch nicht permanent danach fragen und das Log mit leider nicht eindeutigen Fehlermeldungen füllen. Ich habe keine Ahnung welche SMA Modelle eine Batterie unterstützen aber vllt. kann man das ja in einer der nächsten Modul Versionen vom Model abhängig machen.

So genug gelästert, danke für die Info mit  sup_ChargeStatus, so kann ich das jetzt zumindest bei mir rauswerfen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

Na dann hättest Du als Modulautor ja auch reingucken können :-)
Ich habe mit dem Modul hier auch nichts am Hut, außer dass es bei mir seit 2 Jahren sehr zuverlässig seinen Dienst verrichtet.
Natürlich könnte man das Abfragen verhindern, allerdings nach welchen Kriterien? Bzgl. Batterie und PV Wechselrichter sind wir uns einig, das wäre einfach über ein Attribut möglich (BatteryInverter(true/false)). Aber die Meldung taucht auch hin und wieder schon mal auf, wenn ein WR gewisse Funktionen nicht unterstützt. Leider gibt es ja keine anständige Doku von SMA, sonst könnte man bestimmt noch mehr aus den Kisten rausholen.
Offtopic, aber Zähler beim Batterie-WR wird es intern bestimmt geben....

Aber vielleicht vergisst du ja deine Sorgen, wenn du verbose wieder auf 0 setzt :-)


Update: Dann schmeiss auch noch sup_BatteryInfo raus!
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 -

rostak

Hallo Fachleute!
Ich starte mein 1. fhem Projekt. Fhem läuft auf einem pi und soll die Wechselrichter TP7000 und SB5000SE, sowie ein energymeter auslesen. Aus den Daten soll ermittelt, welcher Anteil der Einspeisung einem Heizstab (AC-ELWA E) zugeteilt werden soll. Das wird im per HTTP mitzuteilen sein.
Doch erstmal geht es ums lesen:

Der TP antwortet mit diesem Modul wie erwartet. Die Einträge im log schreibe ich einmal den beim TP fehlenden Parametern zu, richtig?

2018.11.04 14:33:06 3: TP7000 - Send request 0002005100404600FF424600 to 192.168.178.26 on port 9522
2018.11.04 14:33:06 3: TP7000 - Send request 00020051003F2600FF3F2600 to 192.168.178.26 on port 9522
2018.11.04 14:33:06 3: TP7000 - Send request 00020051005A2900FF5A2900 to 192.168.178.26 on port 9522
2018.11.04 14:33:06 3: TP7000 - Format of inverter response does not fit.
2018-11-04_14:33:06 TP7000 SPOT_PACTOT: 815

Der SB hingegen liefert als state ausschließlich
   
Timeout: process terminated

Im Log steht dann

2018.11.04 14:46:05 3: SMAInverter SB5000SE - WARNING - old process 736 will be killed now to start a new BlockingCall
2018.11.04 14:46:05 1: SMAInverter SB5000SE -> BlockingCall getstatus_DoParse Timeout: process terminated
2018.11.04 14:46:06 3: TP7000 - Send request 00020058001E8200FF208200 to 192.168.178.26 on port 9522
2018.11.04 14:46:06 3: TP7000 - Send request 0002005400012600FF222600 to 192.168.178.26 on port 9522
2018.11.04 14:46:06 3: TP7000 - Send request 00028053001E2500FF1E2500 to 192.168.178.26 on port 9522
2018.11.04 14:46:06 3: TP7000 - Send request 0002005100404600FF424600 to 192.168.178.26 on port 9522
2018.11.04 14:46:06 1: PERL WARNING: substr outside of string at /usr/share/perl/5.24/bigint.pm line 120.
2018.11.04 14:46:06 1: PERL WARNING: Use of uninitialized value $str in substitution (s///) at /usr/share/perl/5.24/bigint.pm line 125.
2018.11.04 14:46:06 3: TP7000 - Send request 00020051003F2600FF3F2600 to 192.168.178.26 on port 9522
2018.11.04 14:46:06 3: TP7000 - Send request 00020051005A2900FF5A2900 to 192.168.178.26 on port 9522
2018.11.04 14:46:06 3: TP7000 - Format of inverter response does not fit.
2018-11-04_14:46:06 TP7000 SPOT_PACTOT: 1048

Das Timeout: process terminated wurde bereits in #399 thematisiert. Ich fand bislang aber keinen Hinweis, dass hugo.cranks Problem gelöst wurde.

Das SMAEM funktioniert, doch findet es 2 energymeter, obwohl ich definitiv nur 1 habe, das auch plausible Daten liefert. Dem 2. schreibt es eine Seriennummer zu, die zu keinem SMA Gerät im Netz passt und es werden sinnfreie readings dazu erzeugt. Doch das Thema werde ich im passenden Thread beschreiben.

Bestimmt kann einer von euch helfen und die Lösung anfängergängig vermitteln 😉

Superwutz

Moin,

ich habe das Modul gerade mal ausprobiert und bin soweit zufrieden und überrascht das es auf Anhieb funktioniert hat ::)

Kleine Frage von mir als FHEM-Noob:

Ich würde gerne einen Icon in Abhängigkeit des PV-Ertrages für das Device nehmen. Dieser soll sich jeweils ändern wenn
der Betrag einen gewissen Wert überschreitet. Soweit ich das begriffen habe wird der Gesamtertrag bereits standardmäßig
als State des Devices gesetzt. Ich brauche hierfür also eigentlich nur noch eine Funktion die entsprechend den Icon ändert.

Hier mein jämmerlicher Versuch:

attr Wechselrichter devStateIcon >2500:rc_GREEN >0<=2500:rc_YELLOW <=0:rc_BLUE

Leider keine feststellbare Funktion..

Kann mir jemand schnell helfen?? ::)
FHEM unter Windows
Drölfzig Homematic IP Devices

Prof. Dr. Peter Henning


DS_Starter

Hallo rostak,

die Meldungen des SB

Zitat
Der SB hingegen liefert als state ausschließlich
   
Timeout: process terminated

Im Log steht dann

2018.11.04 14:46:05 3: SMAInverter SB5000SE - WARNING - old process 736 will be killed now to start a new BlockingCall
2018.11.04 14:46:05 1: SMAInverter SB5000SE -> BlockingCall getstatus_DoParse Timeout: process terminated

kommen daher, dass der SB nicht antwortet und der Request auf den eingestellten Timeout läuft . Warum es so ist, steht auf einem anderen Blatt.
Vllt. ist mit einem verbose 4/5 mehr zu sagen.
Möglich ist allerdings auch, dass dieser WR nicht mit dem Modul kompatibel ist.

Frage in die Runde ... hat jemand bereits einen SB5000SE erfolgreich mit dem Modul eingebunden ?

LG,
Heiko
ESXi@NUC+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

rostak

Hallo Heiko,

hab verbose 4 gestellt und sleep unterdrückt.
Im log steht dann das:

2018.11.07 19:39:01 4: SB5000SE - ###############################################################
2018.11.07 19:39:01 4: SB5000SE - ##########  Begin of new SMAInverter get data cycle  ##########
2018.11.07 19:39:01 4: SB5000SE - ###############################################################
2018.11.07 19:39:01 4: SB5000SE - timeout cycles since module start: 0
2018.11.07 19:39:01 4: SB5000SE -> Start BlockingCall getstatus_DoParse
2018.11.07 19:39:01 4: SB5000SE - current time: 07.11.2018 19:39:01
2018.11.07 19:39:01 4: SB5000SE - operation time begin: 07.11.2018 06:58:34
2018.11.07 19:39:01 4: SB5000SE - operation time end: 07.11.2018 17:33:05
2018.11.07 19:39:01 4: SB5000SE - Send login to 192.168.178.22 on Port 9522 with password 0000
2018.11.07 19:39:01 1: PERL WARNING: substr outside of string at /usr/share/perl/5.24/bigint.pm line 120.
2018.11.07 19:39:01 1: PERL WARNING: Use of uninitialized value $str in substitution (s///) at /usr/share/perl/5.24/bigint.pm line 125.
2018.11.07 19:40:01 3: SMAInverter SB5000SE - WARNING - old process 1675 will be killed now to start a new BlockingCall
2018.11.07 19:40:01 1: SMAInverter SB5000SE -> BlockingCall getstatus_DoParse Timeout: process terminated

DS_Starter

Überprüfe mal ob dieser Sendestring richtig ist


SB5000SE - Send login to 192.168.178.22 on Port 9522 with password 0000


d.h. ob die IP stimmt und das Passwort. Entweder antwortet der WR garnicht oder mit einer Antwort die das Modul nicht nterpretieren kann. verbose 5 probieren.
ESXi@NUC+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

rostak

die IP stimmt
wie prüf ich den Rest? Da hab ich nie was dran gestellt...
verbose 5 bringt das:
verbose 5 kann ich grad nicht prüfen: der SB ist ja im Halbschlaf...

DS_Starter

#491
Mit dem attribut suppressSleep = 1 kannst du ihn trotz Nacht animieren.
Dann sollte auch verbose 5 etwas bringen.

Zitatwie prüf ich den Rest? Da hab ich nie was dran gestellt...
Du kannst eigentlich nur noch das Passwort prüfen bzw. musst es wissen.
ESXi@NUC+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

rostak

ich meinte den fürs SMAEM erzeugten Halbschlaf, sprich Schalter am Gerät umgelegt.
suppresssleep war eh aktiv
Jetzt ist der Schalter wieder auf ON
im log bleibts beim alten...

DS_Starter

Sag mal hat der SB eigentlich ein Speedwire-Interface ?
Ist das auch enabled?

Ich glaube mich zu erinnern dass wir hier im Thread mit Sunnyboy schon mal Probleme hatten, musst du mal etwas rückwärts recherchieren wenn du es nicht sofort weißt .....
ESXi@NUC+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

rostak

In der Konfiguration des SB im portal ist die Seriennummer dem speedwire zugeordnet.
speedwire explizit enablen geht da nicht