Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.

Begonnen von Volker Kettenbach, 30 März 2016, 12:42:05

Vorheriges Thema - Nächstes Thema

sct14675

Ich nehm an, die erste Zeile ist nur eine Lesehilfe:
--------: 00 01 02 03 04 05 06 07 08 09
Dort steht keine Adresse dabei.

Ich versuch mal, ob ich Werte rausbekomme.

tschüss,
Thomas

Waldmensch

Stimmt  :D , wenn man nur zwischen Tür und Angel guckt

Entsprechend ist die Länge nur 172 und die Position des Wertes 124. Bei Werten die aus 2 oder mehr Bytes bestehen diese nach dem umrechnen auch drehen AA BB -> BB AA und dann in der Antwort suchen. Zur Dezimal -> Hex Umrechnung nehme ich immer den Windows Taschenrechner im Programmierer Modus. Auf Dezimal stellen, Wert eintragen und auf Hex umschalten. Andersrum geht es natürlich auch.

sct14675

Ich hab mich ein bisserl damit gespielt, mein größtes Problem war: Die Werte waren nicht eindeutig zuzuordnen.
Da ich kein Python kann sondern nur C, hab ich mir den Sourcecode von SBFspot mal angeschaut.
Die Systematik ist recht simpel in den Antworten. Die Antwort beginnt immer mit der Signatur "00 10 60 65", ab der 00 hab ich gezählt bei den Positionen.
Ab Byte 41 in der Antwort kommt ein Identifier, der sagt, welcher Parameter grad übertragen wird. Nach Identifier und Payload kommen evtl. noch weitere.
Dabei ist das erste Byte eine Kennung zum Datentyp, Byte 2+3 legen dann den eigentlichen Identifier fest.
Seltsamerweise werden alle Daten immer 4 mal direkt hintereinander übertragen...

Dadurch ergibt sich für meinen Datenlog:
Charge Status:

Request:
534D4100000402A00000000100260010606509A0FFFFFFFFFFFF00007D00E2D41335000000000000078000020051005A2900FF5A290000000000

Current battery charge status
Identifier: Byte 42+43 : 5A29
Data: Byte 49-52
Data Type: Unsigned long



Request:
534D4100000402A00000000100260010606509A0FFFFFFFFFFFF00007D00E2D41335000000000000088000020051001E4900FF5D490000000000

Number of battery charge throughputs
Identifier: Byte 42+43 : 1E49
Data: Byte 49-52
Data Type: Unsigned long

Battery temperature
Identifier: Byte 70+71 : 5B49
Data: Byte 77-80
Data Type: Unsigned long in 0,1°C Schritten

Battery voltage
Identifier: Byte 98+99 : 5C49
Data: Byte 105-108
Data Type: Unsigned long in 0,01V Schritten

Battery current
Identifier: Byte 126+127 : 5D49
Data: Byte 133-136
Data Type: signed long in 0,001A Schritten



Request:
534D4100000402A00000000100260010606509A0FFFFFFFFFFFF00007D00E2D4133500000000000011800002005100404600FF42460000000000

Power L1 (aka SPOT_PAC1)
Identifier: Byte 42+43 : 4046
Data: Byte 49-52
Data Type: signed long

Power L2 (aka SPOT_PAC2)
Identifier: Byte 70+71 : 4146
Data: Byte 77-80
Data Type: signed long

Power L3 (aka SPOT_PAC3)
Identifier: Byte 98+99 : 4246
Data: Byte 105-108
Data Type: signed long


Die restlichen Daten kann ich mit SBFspot und dem Datenlog auch rausfiltern, wenn gewünscht.
Wobei laut SBFspot Sourcecode müssten die Anfragen für Strom/Spannung/Leistung/Energie die gleichen sein wie beim STP,man müsste also nur zusätzliche Abfragen für die Batterieparameter einbauen.

Wie gesagt: Ich kann leider kein Python - Kann mir wer helfen, das ganze in ein Modul zu prügeln?

danke und tschüss,
Thomas

Waldmensch

du kannst doch das SMASTP Plugin fast 1:1 verwenden. Ganz oben werden die requests als globale Variablen definiert.

Dann kommt eine ganze Latte Modulpezifischer code zum einlesen und verwalten der Parameter.

Ab Zeile 430 erfolgt das parsen der Antworten anhand Länge und Position. Kam eine gültige Antwort wird die nächste Anfrage rausgeschickt. Bis alle durch sind. Der nächste Teil, der für dich dann interessant ist ist ab 518 das setzen der Readings. Was da alles drumherum ist kann in deinem Fall auch weg

Das ganze Avg Buffer, Nachtmodus und Inaktivität fällt ja in diesem Fall flach, da die Batterie ja rund um die Uhr ausgewertet wird.

sct14675

Hab das SMASTP Modul als Basis genommen und modifiziert.
Der erste Versuch ging grandios in die Hose, da ich wie gesagt noch nie in Python programmiert habe.
Aber so hab ich wieder mal ein Projekt ;)

Der prinzipielle Ablauf ist mir klar, auch wie sich das Modul von Kommando zu Kommando hangelt.
Kann aber noch etwas dauern bis das Sunny Island läuft.

Der Plan ist, das SMASTP-Modul so umzuschreiben, dass er mit der Device Class erkennt, ob es ein PV-Inverter oder ein Batterie-Inverter ist. Der Rest der Kommandos sollte gleich bleiben können, es werden nur zusätzliche Batteriedaten abgefragt.

tschüss,
Thomas

Stargazer

Hi zusammen,

habe vorhin auch mal mit SBFspot im debugging 5 gearbeitet. Der haut da ja eine Menge raus.
Ich habe noch eine Frage zum 99_SMAUtils Modul. Ich habe ja nach dem SMAWechselrichter Wikieintrag gearbeitet.

Nun wollte ich gerne den Titel des Graphen mit anderen Werten spicken.
Derzeit habe ich 2 am start. Das sind: Max $data{max1}, Last $data{currval1}"

Nun meine Frage: Wo finde ich diese Daten ? Ich würde nämlich gerne noch die WR-Temperatur mit einblenden.
Habe schon diverse Dateien durchfostet. Oder greift er das direkt aus SBFspot ab ?

@sct14675:
Würde das Modul dann wohl auch bei nicht Tripower-Geräten laufen ? Weil das eigentliche Programmieren ist mir derzeit noch zu hoch.
Da muss ich mich erst noch einarbeiten.

Viele Grüße

André

cerberus

Hallo Volker, heute komme ich mal wieder dazu in das Forum zu schauen um meine Frage nochmal hier zu stellen.

Hallo, ich betreibe eine kleine Photovoltaik Anlage mit 6 Modulen. Jedes Modul ist mit einem Modulwechselrichter Sunny Boy 240 ausgestattet und wird über den Multigate verwaltet. Ich konnte nun von SBFspot die  Beta Version SBFspot_SRC_320_beta_Linux_Win32.tar bekommen, dort wird auch der Multigate unterstützt. Ich kann so, siehe unten, neben den Daten des Multigate nun auch alle Daten jedes einzelnen Modulwechselrichters sehen, was mit Version 3.3.1 nicht möglich war, hier konnte ich nur die Daten eines der Modulwechselrichter sehen und konnte so nicht die aktuelle Leistung des Systems feststellen sondern letztlich nur die eines Moduls. Leider kommt damit die 99_SMAUtils,pm nicht klar. Es wäre super wenn eines deiner Module in der Lage wäre neben EToday: 8.993kWh und  ETotal: 85.321kWh auch Readings der Werte jedes einzelnen Modulwechselrichters z.B. bezogen auf die jeweilige S/N ausgeben könnte.

Anbei mal eine typische Ausgabe von SBFspot eines Multigate mit 6 Modulwechselrichtern.

SBFspot V3.2.0
Yet another tool to read power production of SMA solar inverters
(c) 2012-2015, SBF (https://sbfspot.codeplex.com)
Compiled for Linux (LE) 32 bit

Commandline Args: -nocsv -v
Reading config '/opt/fhem/FHEM/sbfspot/bin/Release/SBFspot.cfg'
Warning: Ignoring keyword 'SynchTimeLow'
Warning: Ignoring keyword 'SynchTimeHigh'
Thu Jun 23 21:33:26 2016: INFO: Starting...
sunrise: 05:03
sunset : 21:34
Connecting to Local Network...
Initializing...
SUSyID: 125 - SessionID: 994747940
Inverter IP address: 192.168.178.33 from SBFspot.cfg
Logon to 175:1915015323 OK
Logon OK
Local Time: 23/06/2016 21:33:27
TZ offset (s): 7200 - DST: On
SUSyID: 175 - SN: 1915015323
Device Name:      Sunny Multigate 323
Device Class:     Kommunikationsprodukte
Device Type:      Multigate-10
Software Version: 01.03.11.R
Serial number:    1915015323
Logon to 244:1920122501 OK
Logon to 244:1920122576 OK
Logon to 244:1920122667 OK
Logon to 244:1920141933 OK
Logon to 244:1920159401 OK
Logon to 244:1920174292 OK
SUSyID: 175 - SN: 1915015323
Device Name:      Sunny Multigate 323
Device Class:     Kommunikationsprodukte
Device Type:      Multigate-10
Software Version: 01.03.11.R
Serial number:    1915015323
SUSyID: 244 - SN: 1920122501
Device Name:      SB 240-10 501
Device Class:     Solar-Wechselrichter
Device Type:      SB 240-10
Software Version:
Serial number:    1920122501
SUSyID: 244 - SN: 1920122576
Device Name:      SN: 1920122576
Device Class:     Solar-Wechselrichter
Device Type:      SB 240-10
Software Version:
Serial number:    1920122576
SUSyID: 244 - SN: 1920122667
Device Name:      SN: 1920122667
Device Class:     Solar-Wechselrichter
Device Type:      SB 240-10
Software Version:
Serial number:    1920122667
SUSyID: 244 - SN: 1920141933
Device Name:      SB 240-10 933
Device Class:     Solar-Wechselrichter
Device Type:      SB 240-10
Software Version:
Serial number:    1920141933
SUSyID: 244 - SN: 1920159401
Device Name:      SB 240-10 401
Device Class:     Solar-Wechselrichter
Device Type:      SB 240-10
Software Version:
Serial number:    1920159401
SUSyID: 244 - SN: 1920174292
Device Name:      SB 240-10 292
Device Class:     Solar-Wechselrichter
Device Type:      SB 240-10
Software Version:
Serial number:    1920174292
SUSyID: 175 - SN: 1915015323
Device Status:      Ok
SUSyID: 244 - SN: 1920122501
Device Status:      Ok
SUSyID: 244 - SN: 1920122576
Device Status:      Ok
SUSyID: 244 - SN: 1920122667
Device Status:      Ok
SUSyID: 244 - SN: 1920141933
Device Status:      Ok
SUSyID: 244 - SN: 1920159401
Device Status:      Ok
SUSyID: 244 - SN: 1920174292
Device Status:      Ok
SUSyID: 175 - SN: 1915015323
Device Temperature: 0.0°C
SUSyID: 244 - SN: 1920122501
Device Temperature: 0.0°C
SUSyID: 244 - SN: 1920122576
Device Temperature: 0.0°C
SUSyID: 244 - SN: 1920122667
Device Temperature: 0.0°C
SUSyID: 244 - SN: 1920141933
Device Temperature: 0.0°C
SUSyID: 244 - SN: 1920159401
Device Temperature: 0.0°C
SUSyID: 244 - SN: 1920174292
Device Temperature: 0.0°C
SUSyID: 175 - SN: 1915015323
Pac max phase 1: 0W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 244 - SN: 1920122501
Pac max phase 1: 230W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 244 - SN: 1920122576
Pac max phase 1: 230W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 244 - SN: 1920122667
Pac max phase 1: 230W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 244 - SN: 1920141933
Pac max phase 1: 230W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 244 - SN: 1920159401
Pac max phase 1: 230W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 244 - SN: 1920174292
Pac max phase 1: 230W
Pac max phase 2: 0W
Pac max phase 3: 0W
SUSyID: 175 - SN: 1915015323
Energy Production:
        EToday: 8.993kWh
        ETotal: 85.321kWh
        Operation Time: 362.66h
        Feed-In Time  : 1228.21h
SUSyID: 244 - SN: 1920122501
Energy Production:
        EToday: 1.682kWh
        ETotal: 17.170kWh
        Operation Time: 232.51h
        Feed-In Time  : 230.92h
SUSyID: 244 - SN: 1920122576
Energy Production:
        EToday: 1.636kWh
        ETotal: 11.411kWh
        Operation Time: 218.07h
        Feed-In Time  : 152.71h
SUSyID: 244 - SN: 1920122667
Energy Production:
        EToday: 1.361kWh
        ETotal: 9.792kWh
        Operation Time: 217.12h
        Feed-In Time  : 152.25h
SUSyID: 244 - SN: 1920141933
Energy Production:
        EToday: 1.395kWh
        ETotal: 15.745kWh
        Operation Time: 232.58h
        Feed-In Time  : 231.02h
SUSyID: 244 - SN: 1920159401
Energy Production:
        EToday: 1.412kWh
        ETotal: 15.464kWh
        Operation Time: 231.92h
        Feed-In Time  : 230.77h
SUSyID: 244 - SN: 1920174292
Energy Production:
        EToday: 1.507kWh
        ETotal: 15.739kWh
        Operation Time: 231.32h
        Feed-In Time  : 230.54h
SUSyID: 175 - SN: 1915015323
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  22.55V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 244 - SN: 1920122501
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  23.94V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 244 - SN: 1920122576
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  21.97V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 244 - SN: 1920122667
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  20.63V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 244 - SN: 1920141933
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  23.46V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 244 - SN: 1920159401
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  23.31V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 244 - SN: 1920174292
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:  22.04V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 175 - SN: 1915015323
AC Spot Data:
        Phase 1 Pac :   0.009kW - Uac: 234.45V - Iac:  0.038A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.009kW
SUSyID: 244 - SN: 1920122501
AC Spot Data:
        Phase 1 Pac :   0.002kW - Uac: 234.70V - Iac:  0.008A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.002kW
SUSyID: 244 - SN: 1920122576
AC Spot Data:
        Phase 1 Pac :   0.002kW - Uac: 234.65V - Iac:  0.007A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.002kW
SUSyID: 244 - SN: 1920122667
AC Spot Data:
        Phase 1 Pac :   0.000kW - Uac: 235.26V - Iac:  0.000A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.000kW
SUSyID: 244 - SN: 1920141933
AC Spot Data:
        Phase 1 Pac :   0.001kW - Uac: 234.58V - Iac:  0.006A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.001kW
SUSyID: 244 - SN: 1920159401
AC Spot Data:
        Phase 1 Pac :   0.002kW - Uac: 235.59V - Iac:  0.009A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.002kW
SUSyID: 244 - SN: 1920174292
AC Spot Data:
        Phase 1 Pac :   0.002kW - Uac: 234.96V - Iac:  0.008A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.002kW
SUSyID: 175 - SN: 1915015323
Grid Freq. : 50.01Hz
SUSyID: 244 - SN: 1920122501
Grid Freq. : 50.01Hz
SUSyID: 244 - SN: 1920122576
Grid Freq. : 50.01Hz
SUSyID: 244 - SN: 1920122667
Grid Freq. : 50.01Hz
SUSyID: 244 - SN: 1920141933
Grid Freq. : 50.01Hz
SUSyID: 244 - SN: 1920159401
Grid Freq. : 50.01Hz
SUSyID: 244 - SN: 1920174292
Grid Freq. : 50.01Hz
********************
* ArchiveDayData() *
********************
startTime = 576B0A60 -> 23/06/2016 00:00:00
**********************
* ArchiveMonthData() *
**********************
startTime = 574EC030 -> 01/06/2016 13:00:00
**********************
* ArchiveMonthData() *
**********************
startTime = 574EC030 -> 01/06/2016 13:00:00
Reading events: 2016-Jun-01
Thu Jun 23 21:33:31 2016: INFO: Done.


Freundlichen Gruß
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

Waldmensch

Ich glaube nicht, das die Idee so gut ist, da SMASTP darauf scharf ist, in den Sleepmode zu kommen, was bei einem WR Sinn macht, aber bei einer Batterie überhaupt nicht. Du willst ja tagsüber sehen, wie sie geladen wird und nachts wie die Leistung runtergeht. Ich wäre für ein separates Modul.

Nebenbei, ich musste mich in Perl auch erst reinfinden ;)
Zitat von: sct14675 am 19 Juli 2016, 20:23:13
Hab das SMASTP Modul als Basis genommen und modifiziert.
Der erste Versuch ging grandios in die Hose, da ich wie gesagt noch nie in Python programmiert habe.
Aber so hab ich wieder mal ein Projekt ;)

Der prinzipielle Ablauf ist mir klar, auch wie sich das Modul von Kommando zu Kommando hangelt.
Kann aber noch etwas dauern bis das Sunny Island läuft.

Der Plan ist, das SMASTP-Modul so umzuschreiben, dass er mit der Device Class erkennt, ob es ein PV-Inverter oder ein Batterie-Inverter ist. Der Rest der Kommandos sollte gleich bleiben können, es werden nur zusätzliche Batteriedaten abgefragt.

tschüss,
Thomas

sct14675

Ahhh, das ist Perl und nicht Python ;D
Das erklärt einige Fehler von gestern Abend, vor allem mit dem dämlichen "unpack" Kommando...

Wegen ein oder zwei Module:
Der PV-Inverter wird ja ganz normal in den Sleepmode wechseln, für den PV-Inverter wird es (kaum) Änderungen geben (nur ein zusätzliches Reading DeviceClass).
Mit zwei Abfragen im Code kann ich beide Invertertypen behandeln.
In FHEM sieht das dann so aus:

define MySTP SMASTP 0000 192.168.78.93
define MySI SMASTP 0000 192.168.178.94
attr MySI suppress-inactivity-mode 1
attr MySI suppress-night-mode 1

Der STP geht ganz normal schlafen, der Sunny Island bleibt wach. Beide werden aber über das gleiche Modul definiert.
Das hat den Vorteil, dass nur ein Modul gepflegt werden muss und Änderungen nicht erst in andere Module übernommen werden müssen.

Der aktuelle Stand ist: Ich kann die Device-Class von beiden abfragen und abhängig davon Kommandos rausschicken, beide Inverter haben dann nur die jeweils zutreffenden Readings.
Leider komm ich heute und morgen nur wenig zum programmieren. Ich denke am Wochenende kann ich einen Stand hier reinstellen, dann kann den testen wer will.

tschüss,
Thomas

Waldmensch

Ja okay, so kann es gehen. Bekommt man denn beim Login in der Antwort ein device übermittelt (STP, SI etc), dass man daran forken kann? Das wäre ja ideal als Autoerkennung. Eventuell kriegt man Stargazers WR damit auch an den Start, wenn er den Debug Output von SBFspot bereitstellt.

Stargazer

Hallo zusammen,

ich kann die Debug Datei später gerne hier hochladen.
Es wird ja schon immer mal den Fall geben, wo Leute ihren WR mit der Speedwire Schnittstelle nachrüsten.
Wenn ich die Datei mit einstelle, hätten wir eigentlich alle Gattungen von Invertern mit Speedwire zusammen.

Das wäre natürlich genial... .

VG

André

Waldmensch

Ich habe mir den Debugoutput von @sct14675 nochmal angeschaut. Da gibt es ein Kommando, was die komplette Identität eines Gerätes zurückliefert. Allerdings weiß ich nicht wie die Daten in der Antwort codiert sind. Dieses Kommando müßte dann gleich nach dem Login abgefeuert werden. Wenn man weiß, welches Gerät man hat, kann man dann die entsprechenden Kommandos verwenden. Ich denke mal die INV_CLASS   : 'DevClss7'  Information sollte fast ausreichen.

Send: 534D4100000402A00000000100260010606509A0FFFFFFFFFFFF00007D00E2D41335000000000000068000020058001E8200FF20820000000000
Receive: 534D4100000402A000000001009E000010606527907D00E2D4133500A04C0126A1294B000000000000068001020058001E8200021E8200071E82106CDF8D57534E3A2031323631303139343330000000000000000000000000000000000000071F82086CDF8D57471F0001FEFFFF007000002030FE00200000000054000000D4CAFF1F70000020072082086CDF8D573F240001FEFFFF00FEFFFF00FEFFFF00FEFFFF00FEFFFF00FEFFFF00FEFFFF00000000


INV_NAME    : 'SN: 1261019430' Tue Jul 19 10:06:04 2016
INV_CLASS   : 'DevClss7' Tue Jul 19 10:06:04 2016
INV_TYPE    : 'SI 4.4M' Tue Jul 19 10:06:04 2016
SUSyID: 332 - SN: 1261019430
Device Name:      SN: 1261019430
Device Class:     DevClss7
Device Type:      SI 4.4M
Software Version: 03.02.04.R
Serial number:    1261019430



Edit: Habe noch kurz weitergeforscht. In obiger Antwort ist die DeviceClass 471F und der Device Type 3F24. An diesen beiden stellen müssen wir die Gerätedaten rauspicken für weitere forks im Code

Deviceclass wird nach folgendem Schlüssel festgelegt (Source SBFspot)
typedef enum
{
    AllDevices = 8000,          // DevClss0
    SolarInverter = 8001,       // DevClss1
    WindTurbineInverter = 8002, // DevClss2
    BatteryInverter = 8007,     // DevClss7
    Consumer = 8033,            // DevClss33
    SensorSystem = 8064,        // DevClss64
    ElectricityMeter = 8065,    // DevClss65
    CommunicationProduct = 8128 // DevClss128
} DEVICECLASS;


Für Devicetype existiert eine elend lange Liste in der Datei TagListDE-DE.txt im SPFSpot Source. Dort steht der Island unter 9279=SI 4.4M\0\SI 4.4M

sct14675

Ging jetzt doch schneller als gedacht.
Das Modul läuft bei mir seit fast 10min fehlerfrei, bitte auch so behandeln ;)
Einfach das Modul 77_SMASTP.pm durch das angehängte ersetzen und dann einen "shutdown restart" ausführen.
Der STP sollte nach wie vor laufen, ohne dass man etwas ändern muss.

Das Modul erkennt anhand der DeviceClass ob es ein Solar Inverter oder Batterie-Inverter (oder was unbekanntes) ist.
Abhängig davon gibt es die passenden Readings.

Ich hab die Werte mit dem Sunny Portal verglichen und die passen soweit.
Bitte gebt mir Rückmeldung, wenn was nicht läuft. Ich kann auch noch mehr Readings einpflegen, es gibt da alles über Spannungen / Ströme / Temperaturen, ...

@stargazer
Probiers mal aus. Wenns nicht läuft, dann kannst du mir gern deinen Output vom sbfspot schicken und ich schau ob da noch eine weitere Extra-Behandlung rein muss.
tschüss,
Thomas

DS_Starter

Hallo Thomas,

super, wollte mich auch noch mit dem Modul beschäftigen ... aber wenn du schon mal dabei bist ....  ;)

Es wäre evtl. reizvoll wenn das Modul die bisher von SBFSpot gelieferten Readings auch bereitstellen könnte, auch mit den entspr. Namen.
Das hätte m.M. nach den Vorteil dass bisherige und historische Auswertungen nicht geändert werden müssen. die Daten quasi nicht "verloren" gehen.

Das wäre diese Liste:


current_inverter_time           20.07.2016 18:25
device_class                   Solar-Wechselrichter
device_name                   SN: 304978710
device_status                   Ok
device_temperature          58.0°C
device_type                  STP 5000TL-20
etoday                                                31.552
etotal                                                10.416.575
feed-in_time                                         7257.19h
getenergyproduction_returned_an_error -1
getgridrelaystatus_returned_an_error         -1
getmaxacpower_returned_an_error         -1
getspotacpower_returned_an_error         -1
getspotactotalpower_returned_an_error 1
grid_freq.                                                 49.96
gridrelay_status                                         Geschlossen
inverter_sleep_time                                 20.07.2016 18:25
inverter_wake-up_time                         20.07.2016 05:33
operation_time                                         7306.49h
pac_max_phase_1                                 5000
pac_max_phase_2                                 5000
pac_max_phase_3                                 5000
phase_1_iac                                         1.058
phase_1_pac                                         0.248
phase_1_uac                                         234.68
phase_2_iac                                         1.049
phase_2_pac                                         0.247
phase_2_uac                                         235.20
phase_3_iac                                         1.044
phase_3_pac                                         0.246
phase_3_uac                                        235.49
reading_events                                        2016-Jul-01
serial_number                                        304978710
software_version                                02.54.00.R
state                                                        active
string_1_idc                                        1.665
string_1_pdc                                        0.689
string_1_udc                                        443.46
string_2_idc                                        0.000
string_2_pdc                                        0.000
string_2_udc                                        0.00
summary                                                enabled
susyid                                               181 - SN: 304978710
total_pac                                               0.693



Was meinst du dazu ?  Und vor allem Volker, er ist ja schließlich der Modul-Maintainer.
Aber prima würde ich es finden ....

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

Waldmensch

Veto! Ich habe jetzt ein halbes Jahr die aktuellen Readings in der Datenbank. Wenn dann einen SFBSpot Kompatibilitätsmodus über einen Parameter. Das wäre kein Akt, da die Werte intern sowieso in Variablen vorgehalten werden. Dann springt man abhängig von dem Parameter halt den einen Readings Block oder den Anderen an.