76_SMAInverter.pm - Abfrage von SMA Wechselrichter

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

Vorheriges Thema - Nächstes Thema

Straightforward

Hallo Zusammen,

beim laden des Moduls kommt folgende Fehlermeldung:

ZitatToo many arguments for main::RemoveInternalTimer at ./FHEM/76_SMAInverter.pm line 384, near ""SMAInverter_GetStatus")"
Too many arguments for main::RemoveInternalTimer at ./FHEM/76_SMAInverter.pm line 387, near ""SMAInverter_GetData")"

Xguide

@straightforward: shutdown restart vergessen?
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 -

Straightforward

Habe mal ein FHME update gemacht und jetzt mache ich nix mehr in der fhem.cfg.
So scheint es zu klappen. Leider hab ich im LogFile bis jetzt nur drin stehen, dass die Anlage schläft. Mal auf morgen warten!

Trotzdem Danke!

DS_Starter

ZitatLeider hab ich im LogFile bis jetzt nur drin stehen, dass die Anlage schläft. Mal auf morgen warten!

Du kannst dir dass Attribut suppressSleep=1 setzen. Dann kommen auch außerhalb der Betriebszeit Werte rein.

Zitat...und jetzt mache ich nix mehr in der fhem.cfg.

Das ist gut  ;)  Und mache dir reglmäßig ein backup dieser Datei damit du im Bedarfsfall mal eine definitiv funktionierende Konfig laden kannst.
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

Straightforward

Bei suppressSleep bekomme ich nen timeout, ohne ein done.

Ich mach halt via dem befehl backup n backup. Oder sicherst du die fhem.cfg extra?

DS_Starter

Bei suppressSleep bekomme ich nen timeout, ohne ein done.

Du kannst das Attribut timeout z.B. auf 120(s) setzen. Allerdings ist der Standard-Timeout eigentlich ausreichend hoch gesetzt.
Versuche es mal. Wenn es nicht hilft dann setze verbose=5 und dann sieht man mehr.

ZitatIch mach halt via dem befehl backup n backup. Oder sicherst du die fhem.cfg extra?

Das ist ausreichend. Ich selbst sichere die Dateien täglich auf eine externe Festplatte mit Versionierung. Mein FHEM läuft auf einem NAS.
Das macht es für mich einfach.
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

Straightforward

#186
Tja, was soll ich sagen, jetzt sollte der Wechselrichter eigentlich wach sein ...
Zitatdetail-level 2
interval 120
suppressSleep 0
timeout 120
verbose 5


aber ...
Zitat2016-12-23_07:40:42 SMA_Inverter modulstate: sleep
2016-12-23_07:40:42 SMA_Inverter opertime_start: 23.12.2016 07:44:24
2016-12-23_07:40:42 SMA_Inverter opertime_stop: 23.12.2016 17:05:22
2016-12-23_07:40:42 SMA_Inverter done
2016-12-23_07:42:42 SMA_Inverter modulstate: sleep
2016-12-23_07:42:42 SMA_Inverter opertime_start: 23.12.2016 07:44:24
2016-12-23_07:42:42 SMA_Inverter opertime_stop: 23.12.2016 17:05:22
2016-12-23_07:42:42 SMA_Inverter done
2016-12-23_07:46:42 SMA_Inverter timeout
2016-12-23_07:48:42 SMA_Inverter timeout
2016-12-23_07:50:42 SMA_Inverter timeout
2016-12-23_07:52:42 SMA_Inverter timeout
2016-12-23_07:54:42 SMA_Inverter timeout
2016-12-23_07:56:42 SMA_Inverter timeout
2016-12-23_07:58:42 SMA_Inverter timeout
2016-12-23_08:00:42 SMA_Inverter timeout


Hier noch das LogFile ...
Zitat2016.12.23 08:04:42 1: Timeout for getstatus_DoParse reached, terminated process 6895
2016.12.23 08:04:42 1: SMAInverter SMA_Inverter -> BlockingCall getstatus_DoParse timed out
2016.12.23 08:04:42 4: SMA_Inverter - ###############################################################
2016.12.23 08:04:42 4: SMA_Inverter - ##########  Begin of new SMAInverter get data cycle  ##########
2016.12.23 08:04:42 4: SMA_Inverter - ###############################################################
2016.12.23 08:04:42 4: SMA_Inverter - timeout cycles since module start: 326
2016.12.23 08:04:42 4: SMA_Inverter -> Start BlockingCall getstatus_DoParse
2016.12.23 08:04:42 4: SMA_Inverter - current time: 23.12.2016 08:04:42
2016.12.23 08:04:42 4: SMA_Inverter - operation time begin: 23.12.2016 07:44:24
2016.12.23 08:04:42 4: SMA_Inverter - operation time end: 23.12.2016 17:05:22
2016.12.23 08:04:42 4: SMA_Inverter - Send login to sma-home-manager on Port 9522 with password pw
2016.12.23 08:04:42 5: SMA_Inverter - Send: 534D4100000402A000000001003A001060650EA0FFFFFFFFFFFF0001E90023BB590700010000000001800C04FDFF07000000840300008ACC5C5800000000F4FDFC10888888888888888800000000
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 222.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 223.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 228.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 229.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 232.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 233.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 236.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 237.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 240.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 241.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 244.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 245.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 248.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 249.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 252.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 253.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 256.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 257.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 260.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 261.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 264.
2016.12.23 08:04:47 1: PERL WARNING: Argument "23.12.2016" isn't numeric in numeric lt (<) at ./FHEM/92_FileLog.pm line 800, <GEN740> line 265.
2016.12.23 08:05:03 2: Backup with command: tar -cf - "./CHANGED" "./configDB.pm" "./contrib" "./demolog" "./docs" "./FHEM" "./fhem.cfg" "./fhem.cfg.demo" "./fhem.pl" "./log" "./README_DEMO.txt" "./restoreDir" "./unused" "./www" |gzip > ./backup/FHEM-20161223_080503.tar.gz

Xguide

Moin,

bei dir scheinen aber noch andere Sachen im Argen zu sein.
Dein Logging funktioniert nicht weil es Probleme im FileLog-Modul gibt, oder Du nicht die letzte Version von SMAInverter hast. Da du aber Operation Start und Stop hast und timeout parametrieren kannst, sollte das recht aktuell sein.

Hast du mehrere WR im Netz? Dann Seriennummer und SysID angeben. Siehe vorherige Posts hier im Thread. Stichwort Portal, Gerätekonfig, Parameter

Was mich aber komplett verwundert ist die Zeile "...send login to SMA-Home-Mager..."


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

Morgen zusammen,

kann nur unterstreichen was Xguide angemerkt hat.
Du kannst mal ein list deines SMAInverter-Device machen und dein Define überprüfen.

Es muß lauten

define <Name> SMAInverter <Paswort> <IP-Adresse des Inverters und nicht des Home Managers ! >

In dem Inverter muß das BT-Protokoll abgeschaltet sein damit Speedwire funktioniert.

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

Straightforward

Oh mein Gott, wie peinlich ... hatte den Home Manager parametriert, anstelle des Inverter.

Jetzt geht es ... Danke!

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 -

Straightforward

Hier mal n Bildschirmfoto als Anhang.

VIELEN VIELEN DANK!


Volker Kettenbach

Heiko,

76_SMAInverter ist jetzt ja der de facto Standard für SMA Geräte.
Ich denke - um nicht Verwirrung zustiften - dass wir 77_SMASTP abmanagen sollten.

Stellt sich die Frage: wie gehen wir vor!
Ich möchte ja gerne, dass solche Module nach Möglichkeit im github liegen.
Soll ich Dir Zugriff auf das Github Repository geben und Du legst das Modul da rein!?
Ins SVN bringst Du es ja selbst schon - da muss ich nix machen.

Ich würde, wenn 76_SMAInverter drin ist, dann 77_SMASTP rausnehmen oder zumindest einen großen Vermerkt "DEPRECTAED" dran machen.
Evtl. auch im Code, so dass FHEM das auch anzeigt.

Was meinst Du?

Volker Kettenbach

Heiko,

noch eine Frage, was meine persönliche Installation angeht:

Ich setze noch immer 77_SMASTP ein und möchte das gerne durch Deinen 76_SMAInverter ersetze, um das 77_SMASTP wie geschrieben endgültig los zu werden.

Auch was muss ich achten? Ich möchte natürlich meine Reading-Bezeichungen erhalten, sonst sind die Logs und die Graphen hin.

Gruß
VK

DS_Starter

Hallo Volker,

Zitat.. dass wir 77_SMASTP abmanagen sollten. Stellt sich die Frage: wie gehen wir vor ...

Mein Vorschlag wäre für 76_SMAInverter das Git-Repository von Thomas zu verwenden. Es ist ja eigentlich sein Modul, ich
supporte es nur als Maintainer während er abwesend ist bzw. keine Zeit hat. Wenn er sich wieder zurück meldet würde ich ihm die Maintainer-Mütze
wieder aufsetzen.

Naja, genau genommen ist es UNSER Modul weil jeder Beteiligte unserer Community so Einiges dazu beigetragen hat.  :D

Ich würde mir wieder einen Branch seines Git in mein Repo ziehen wie ich es mit deinem SMAEM gemacht habe und kann dann das jetzige aktuelle Modul als pull-Request ihm zur Verfügung stellen. Dann kann er es mergen. Im SVN ist ja bereits drin.
Dabei könnte ich gleich eine Beschreibung erstellen wie man das macht (hoffentlich kriege ich es wieder hin  ;) )
Vielleicht liest Thomas mit und sagt seine Meinung noch zu dieser Vorgehnsweise ....

Ansonsten schlage ich vor hier im Forum unter "Ankündigungen" das baldige Ende von SMASTP anzukündigen und die Nutzer auf einen Umstieg hinweisen. Die Idee so eine Meldung im Modul selbst zu hinterlegen finde ich auch klasse ... würde ich so machen.

Bei der Umstellung selbst, auch für dich selbst, ist eigentlich nicht soviel zu beachten.
Die Standardreadings sehen so aus (wahrscheinlich identisch zu SMASTP):


     2017-01-03 17:22:32   INV_CLASS       Solar-Wechselrichter
     2017-01-03 17:22:32   INV_GRIDRELAY   Information liegt nicht vor
     2017-01-03 17:22:32   INV_PACMAX1     5000
     2017-01-03 17:22:32   INV_PACMAX2     5000
     2017-01-03 17:22:32   INV_PACMAX3     5000
     2017-01-03 17:22:32   INV_STATUS      Ok
     2017-01-03 17:22:32   INV_TEMP        0
     2017-01-03 17:22:32   INV_TYPE        STP 5000TL-20
     2017-01-03 17:22:32   SPOT_ETODAY     2228
     2017-01-03 17:22:32   SPOT_ETOTAL     12756919
     2017-01-03 17:22:32   SPOT_FEEDTM     8978.59
     2017-01-03 17:22:32   SPOT_FREQ       0
     2017-01-03 17:22:32   SPOT_IAC1       0
     2017-01-03 17:22:32   SPOT_IAC2       0
     2017-01-03 17:22:32   SPOT_IAC3       0
     2017-01-03 17:22:32   SPOT_IDC1       0
     2017-01-03 17:22:32   SPOT_IDC2       0
     2017-01-03 17:22:32   SPOT_OPERTM     9045.55
     2017-01-03 17:22:32   SPOT_PAC1       0
     2017-01-03 17:22:32   SPOT_PAC2       0
     2017-01-03 17:22:32   SPOT_PAC3       0
     2017-01-03 17:22:32   SPOT_PACTOT     0
     2017-01-03 17:22:32   SPOT_PDC1       0
     2017-01-03 17:22:32   SPOT_PDC2       0
     2017-01-03 17:22:32   SPOT_UAC1       0
     2017-01-03 17:22:32   SPOT_UAC2       0
     2017-01-03 17:22:32   SPOT_UAC3       0
     2017-01-03 17:22:32   SPOT_UDC1       0
     2017-01-03 17:22:32   SPOT_UDC2       0
     2017-01-03 17:22:32   SUSyID          181


Eine Änderung des Readingsaufbaus findet nur statt wenn explizit SBFSpotComp=1 gesetzt wird um den Umstieg für SBFSpot-Umsteiger zu erleichtern.
Eventuell, ich würde dazu raten auch wenn nur ein WR im Netz ist, setze dir noch die Attribute target-serial bzw. target-susyid für deinen WR.

Das Define besteht faktisch nur noch aus dem Passwort für den WR und dessen IP-Adresse.
Das Attr "mode=manual" setzt du wenn du der WR über ein Notify abfragen willst um ihn z.B. mit dem SMAEM zu synhronisieren.
Dann trotzdem auch "interval" auf das reale Abfrageinterval setzen damit die avg-power-Readings richtig berechnet werden können.
Die Betriebszeit wird normalerweise durch den Sonnenaufgang/Sonnenuntergang berechnet (bei SuppressSleep=0). Damit das exakt klappt, sollten 
die globalen Attribute longitude und latitude gesetzt sein um den Standort der Anlage genau zu ermitteln. (siehe Commandref SUNRISE_EL)

Ansonsten fällt mir jetzt nichts weiter ein ...


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