76_SMAInverter.pm - Abfrage von SMA Wechselrichter

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

Vorheriges Thema - Nächstes Thema

sct14675

Hallo zusammen,
auf Basis von den Modulen von Volker Kettenbach und SBFspot hab ich ein neues Modul erzeugt, das SMA Wechselrichter abfragen kann.
Es kann das Modul 77_SMASTP.pm komplett ablösen, es liefert (wenn gewünscht) mehr Daten und unterstützt mehr Wechselrichter.

Ihr könnt den letzten Stand des Modul hier laden:
https://github.com/Rincewind76/SMAInverter
bzw. vergangene Releases hier:
https://github.com/Rincewind76/SMAInverter/releases


Über Rückmeldung und Tests würde ich mich freuen!

Bisher lief die Diskussion in diesem Thread:
https://forum.fhem.de/index.php/topic,51569.0.html

Um diesen nicht zu fluten hab ich den neuen hier aufgemacht.

tschüss,
Thomas

cerberus

Zitat von: sct14675 am 28 Juli 2016, 11:06:19

@cerberus:
Ich glaub, du hast eine Seriennummer in die SUSyID kopiert >> So findet sich kein Empfänger.
Lösch bitte mal die Attribute target-susyid und target-serial, läufts dann wieder? Es müsste zumindest das Multigate reagieren.
Die Antwort kannst du dann bitte im neuen Tread gleich reinschreiben.

Stimmt, es war die SUSyID. Die ist für alle Modulwechselrichter 244.
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

Michael

#2
Moin sct14675

Habe dein Modul am Laufen.

Konnte den Sunny Island 3.0M-11 sowie den Tripower 5000-20TL auslesen können.

Im Anhang sind die Readings zu sehen.

Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

cerberus

Hallo Thomas,

ich habe mit der neuen Version noch einige Meldungen im LOG.


2016.07.28 20:08:04.669 1: PERL WARNING: Smartmatch is experimental at ./FHEM/76_SMAInverter.pm line 151, <DATA> line 1.
2016.07.28 20:08:04.690 1: PERL WARNING: Constant subroutine main::MAXBYTES redefined at /usr/share/perl/5.20/constant.pm line 156, <DATA> line 1.
2016.07.28 20:08:04.726 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/76_SMAInverter.pm line 127, <DATA> line 1.
2016.07.28 20:08:04.727 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/76_SMAInverter.pm line 128, <DATA> line 1.
2016.07.28 20:08:04.727 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/76_SMAInverter.pm line 129, <DATA> line 1.
2016.07.28 20:08:04.731 1: Including /mnt/usb1/fhem/log/fhem.save
2016.07.28 20:08:23.814 0: Featurelevel: 5.7
2016.07.28 20:08:23.814 0: Server started with 560 defined entities (fhem.pl:11756/2016-07-07 perl:5.020002 os:linux user:fhem pid:19135)
2016.07.28 20:08:26.912 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 751.
2016.07.28 20:08:26.913 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 751.
2016.07.28 20:08:26.914 1: PERL WARNING: Use of uninitialized value $inv_SPOT_PAC2 in string eq at ./FHEM/76_SMAInverter.pm line 752.
2016.07.28 20:08:26.914 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 753.
2016.07.28 20:08:26.915 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 753.
2016.07.28 20:08:26.915 1: PERL WARNING: Use of uninitialized value $inv_SPOT_PAC3 in string eq at ./FHEM/76_SMAInverter.pm line 754.
2016.07.28 20:08:26.916 1: PERL WARNING: Use of uninitialized value $inv_SPOT_PAC2 in concatenation (.) or string at ./FHEM/76_SMAInverter.pm line 755.
2016.07.28 20:08:26.916 1: PERL WARNING: Use of uninitialized value $inv_SPOT_PAC3 in concatenation (.) or string at ./FHEM/76_SMAInverter.pm line 755.
2016.07.28 20:08:26.992 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 788.
2016.07.28 20:08:26.992 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 788.
2016.07.28 20:08:26.993 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 789.
2016.07.28 20:08:26.993 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 789.
2016.07.28 20:08:26.993 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 790.
2016.07.28 20:08:26.994 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 790.
2016.07.28 20:08:26.994 1: PERL WARNING: Use of uninitialized value $inv_SPOT_UDC2 in string eq at ./FHEM/76_SMAInverter.pm line 792.
2016.07.28 20:08:26.995 1: PERL WARNING: Use of uninitialized value $inv_SPOT_UDC2 in division (/) at ./FHEM/76_SMAInverter.pm line 792.
2016.07.28 20:08:26.995 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IDC1 in string eq at ./FHEM/76_SMAInverter.pm line 793.
2016.07.28 20:08:26.996 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IDC1 in division (/) at ./FHEM/76_SMAInverter.pm line 793.
2016.07.28 20:08:26.996 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IDC2 in string eq at ./FHEM/76_SMAInverter.pm line 794.
2016.07.28 20:08:26.997 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IDC2 in division (/) at ./FHEM/76_SMAInverter.pm line 794.
2016.07.28 20:08:27.023 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 803.
2016.07.28 20:08:27.023 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 803.
2016.07.28 20:08:27.024 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 804.
2016.07.28 20:08:27.024 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 804.
2016.07.28 20:08:27.024 1: PERL WARNING: substr outside of string at ./FHEM/76_SMAInverter.pm line 805.
2016.07.28 20:08:27.025 1: PERL WARNING: Use of uninitialized value in unpack at ./FHEM/76_SMAInverter.pm line 805.
2016.07.28 20:08:27.025 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IAC1 in string eq at ./FHEM/76_SMAInverter.pm line 809.
2016.07.28 20:08:27.026 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IAC1 in division (/) at ./FHEM/76_SMAInverter.pm line 809.
2016.07.28 20:08:27.026 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IAC2 in string eq at ./FHEM/76_SMAInverter.pm line 810.
2016.07.28 20:08:27.027 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IAC2 in division (/) at ./FHEM/76_SMAInverter.pm line 810.
2016.07.28 20:08:27.027 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IAC3 in string eq at ./FHEM/76_SMAInverter.pm line 811.
2016.07.28 20:08:27.028 1: PERL WARNING: Use of uninitialized value $inv_SPOT_IAC3 in division (/) at ./FHEM/76_SMAInverter.pm line 811.


Grüße
cerberus

Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

sct14675

Kannst du bitte das Attribut verbose auf "5" setzen und mir das Logfile dann senden?

cerberus

Mache ich.

Wie muss ich jetzt eigentlich genau die SUSyID und Serialnumber definieren? Gebe ich sie dort dezimal ein, kommt es zum Login Fehler.

so gibt es mir ja sbfspot aus:
SUSyID: 244 - SN: 1920141933

Grüße
cerberus


Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

cerberus

Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

JoWiemann

Hallo Thomas,

schönes Modul. Bei meinem SunnyBoy: SB 5000TL-21 671 erhalte ich folgende Readings mit SFBSpot:

Internals:
   ADDRESS    192.168.0.53
   DEF        192.168.0.53 300
   NAME       Solar
   NR         812
   STATE      active
   TYPE       SMAUtils
   delayCounter 0
   Readings:
     2016-07-28 21:04:32   SolarEigenverbrauch 1837.1252
     2016-07-28 21:04:32   ac_spot_data
     2016-07-28 21:04:32   current_inverter_time 28/07/2016 21:04:34
     2016-07-28 21:04:32   dc_spot_data
     2016-07-28 21:04:32   device_class    Solar-Wechselrichter
     2016-07-28 21:04:32   device_name     SB 5000TL-21 671
     2016-07-28 21:04:32   device_status   Ok
     2016-07-28 21:04:32   device_temperature 36.0°C
     2016-07-28 21:04:32   device_type     SB 5000TL-21
     2016-07-28 21:04:32   energy_production
     2016-07-28 21:04:32   etoday          9.803
     2016-07-28 21:04:32   etotal          2644.324
     2016-07-28 21:04:32   feed-in_time    3640.09h
     2015-09-04 13:55:55   fri_sep__4_13   55:55 2015: INFO: Done.
     2015-09-04 14:55:55   fri_sep__4_14   55:55 2015: INFO: Done.
     2015-09-04 15:20:55   fri_sep__4_15   20:55 2015: INFO: Done.
     2016-07-19 13:59:13   getdevicestatus_returned_an_error -1
     2016-07-19 15:39:13   getenergyproduction_returned_an_error -1
     2016-07-19 14:09:13   getgridrelaystatus_returned_an_error -1
     2016-07-19 14:19:13   getinvertertemperature_returned_an_error -1
     2016-07-19 15:04:13   getmaxacpower_returned_an_error -1
     2016-07-19 16:29:14   getoperationtime_returned_an_error -1
     2016-07-24 15:13:24   getspotacpower_returned_an_error -1
     2016-07-24 15:53:24   getspotactotalpower_returned_an_error 1
     2016-07-24 16:23:25   getspotacvoltage_returned_an_error -1
     2016-07-19 16:14:13   getspotdcpower_returned_an_error -1
     2016-07-19 16:59:14   getspotdcvoltage_returned_an_error -1
     2016-07-24 16:33:25   getspotgridfrequency_returned_an_error 1
     2016-07-28 21:04:32   grid_freq.      49.97
     2016-07-28 21:04:32   gridrelay_status Geschlossen
     2016-07-28 21:04:32   inverter_sleep_time 28/07/2016 21:04:37
     2016-07-28 21:04:32   inverter_wake-up_time 28/07/2016 06:21:01
     2016-07-28 21:04:32   operation_time  3772.45h
     2016-07-28 21:04:32   pac_max_phase_1 4600
     2016-07-28 21:04:32   pac_max_phase_2 4600
     2016-07-28 21:04:32   pac_max_phase_3 4600
     2016-07-28 21:04:32   phase_1_iac     0.043
     2016-07-28 21:04:32   phase_1_pac     0.006
     2016-07-28 21:04:32   phase_1_uac     228.10
     2016-07-28 21:04:32   phase_2_iac     0.000
     2016-07-28 21:04:32   phase_2_pac     0.000
     2016-07-28 21:04:32   phase_2_uac     0.00
     2016-07-28 21:04:32   phase_3_iac     0.000
     2016-07-28 21:04:32   phase_3_pac     0.000
     2016-07-28 21:04:32   phase_3_uac     0.00
     2016-07-24 16:23:25   reading_events  2016-Jul-01
     2016-07-28 21:04:32   serial_number   2130367671
     2016-07-28 21:04:32   software_version 02.80.02.R
     2016-07-28 21:04:32   statEtotal      Hour: 0.001 Day: 9.803 Month: 406.478 Year: 2132.281
     2016-07-28 20:59:55   statEtotalLast  Hour: 0.122 Day: 17.896 Month: 427.551 Year: 196.278 (since: 2015-10-10 )
     2016-07-28 21:04:32   statEtotalMonth 406.478
     2016-06-30 23:59:55   statEtotalMonthLast 427.551
     2016-07-28 21:04:32   string_1_idc    0.101
     2016-07-28 21:04:32   string_1_pdc    0.024
     2016-07-28 21:04:32   string_1_udc    240.71
     2016-07-28 21:04:32   string_2_idc    0.101
     2016-07-28 21:04:32   string_2_pdc    0.024
     2016-07-28 21:04:32   string_2_udc    241.07
     2016-07-24 14:58:24   sun_jul_24_14   58:24 2016: INFO: Done.
     2016-07-24 15:53:24   sun_jul_24_15   53:24 2016: INFO: Done.
     2016-07-24 16:23:25   sun_jul_24_16   23:25 2016: INFO: Done.
     2016-07-28 21:04:32   susyid          138 - SN: 2130367671
     2016-06-30 17:10:13   thu_jun_30_17   10:13 2016: INFO: Done.
     2016-07-28 21:04:32   total_pac       0.006
     2016-07-19 13:59:13   tue_jul_19_13   59:13 2016: INFO: Done.
     2016-07-19 14:59:13   tue_jul_19_14   59:13 2016: INFO: Done.
     2016-07-19 15:54:13   tue_jul_19_15   54:13 2016: INFO: Done.
     2016-07-19 16:59:14   tue_jul_19_16   59:14 2016: INFO: Done.
     2016-07-19 17:19:14   tue_jul_19_17   19:14 2016: INFO: Done.
     2016-01-06 08:37:11   wed_jan__6_08   37:11 2016: INFO: Done.
     2016-06-22 15:27:18   wed_jun_22_15   27:18 2016: INFO: Done.

Siehst Du eine Chance Differenzmenge zu implementieren?

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

cerberus

Thomas, hast du die Sleep Funkion raus genommen?

Grüße
cerberus
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

sct14675

#9
@cerberus:
Danek für das Log-File, ich schau es mir an und geb dir Bescheid.

Definition von SUSyID und Serialnumber ist ganz normal als Dezimalzahl

Wegen Sleep-Funktion: Ja, die hab ich raus genommen. Ich hab ehrlich gesagt den Sinn dahinter nie ganz verstanden. Der Wechselrichter ist so oder so empfangsbereit, der Netzwerk-Traffic ist etwa 10 Nachrichten mit weniger als je 100 Bytes und einer Standard-Frequenz von 1x pro Minute.
Die Belastung von FHEM an sich muss so oder so gering genug sein, damit es immer funktioniert.

@JoeWiemann:
Es ist eh fast alles implementiert, was genau fehlt dir denn? Dann nehm ich das noch mit rein.

sct14675

@cerberus:
Eine erste Analyse zeigt, dass man sich anscheinend nicht direkt in einen Wechselrichter einloggen kann, der an ein Multigate angeschlossen ist.
Man muss sich zuerst an dem Multigate einloggen, dann muss man sich nochmal in den Wechselrichter einloggen.
Das kann das aktuelle Modul noch nicht, ich schreib es allerdings grad um. Es wäre schön, wennst du das dann testen könntest, da ich ja kein Multigate hab.

Letztendlich musst du dann folgendes definieren in FHEM:
define MyMultigate SMAInverter 0000 192.168.178.33

define MyInverter1 SMAInverter 0000 192.168.178.33
attr MyInverter1 target-susyid 244
attr MyInverter1 target-serial 1920122501

define MyInverter2 SMAInverter 0000 192.168.178.33
attr MyInverter2 target-susyid 244
attr MyInverter2 target-serial 1920122576


Du hast dann in FHEM mehrere Objekte: Das MyMultigate sammelt alle Summendaten, die MyInverter haben dann die einzelnen Daten.

Ich hab allerdings im Logfile auch gesehen, dass es auch beim Multigate einen Fehler bei den Werten zu Spannung/Strom gibt.
Das muss ich mir auch anschauen.

Ich geb dir Bescheid, wenn ich eine neue Version hab.
tschüss,
Thomas

PS: Du hast anscheinend alle Module auf verbose 5 definiert, du kannst das pro Modul einstellen. Dann wird das Logfile nicht so groß.

Waldmensch

Der Sleepmode ist/ war gedacht um nicht die ganze Nacht Nullwerte in DB oder Logfile zu schreiben. Kann man sicher auch anders in FHEM lösen.

sct14675

@cerberus
Bitte probier mal angehängtes Modul aus. Für Normalsterbliche ist keine Änderung spürbar.
Wenn jedoch eine Target-SUSyID und/oder Target-Serial definiert ist, dann wird von einem Multigate ausgegangen.

Es werden dann zwei Logins durchgeführt, einmal im Multigate, einmal im Inverter selbst.

In deinem Fall solltest du folgendes definieren:
define MyMultigate SMAInverter 0000 192.168.178.33
attr MyMultigate verbose 5

define MyInverter1 SMAInverter 0000 192.168.178.33
attr MyInverter1 target-susyid 244
attr MyInverter1 target-serial 1920122501
attr MyInverter1 verbose 5


Kannst du mir dann bitte das Logfile wieder zusenden?

danke und tschüss,
Thomas



cerberus

#13
Hallo Thomas,

ich kann erst heute Abend testen, da ich noch auf Arbeit bin.

Was für mich ganz interessant wäre, wenn im Reading des Multigate unter SPOT_PACTOT die aktuelle Gesamtleistung aller Inverter zusammengefasst wird. Im Moment sehe ich dort, obwohl kein Inverter in den attr gewählt ist, die aktuell erzeugte Leistung des ersten Inverters der Reihe. Ansonsten müsste ich für jeden Inverter ein Device anlegen und alle SPOT_PAC1 oder SPOT_PACTOT addieren um die aktuell erzeugte Gesamtleistung des Systems zu sehen. Für mich ist in FHEM eigentlich nicht so wichtig was jeder Inverter einzeln macht, sondern für mich ist es interessant was das Gesamtsystem am Tag erzeugt hat (ETODAY), insgesamt erzeugt hat (ETOTAL) und was es aktuell gerade erzeugt. Wobei ETODAY und ETOTAL schon funktionieren. Als Reading muss ich auch nur eine Phase darstellen, da der Multigate nur einphasig betrieben wird, ggf. kann man das über ein attr wählen und so unnötige Reading ausblenden.


Grüße
cerberus
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi

cerberus

#14
Hallo Thomas, ich habe dir den LOG aufgezeichnet. Leider bekomme ich auf dem Inverter keine Readings und es kommt bei beiden Devices zum Login failed.

Grüße
cerberus
Banana PI mit Bananian + Fhem 5.5, 2x SCC SlowRF/Homematic + RS485 LAN Gateway HMW-LGW-O-DR-GS-EU + RPI2 I2C to 1-Wire Host Adapter for Raspberry Pi