bolliy / ioBroker.sun2000

iobroker adapter for read and write register data from Huawei SUN2000 inverter and LUNA2000 battery via modbus TCP
MIT License
16 stars 3 forks source link

SmartLogger3000 #41

Closed Kaulii closed 4 months ago

Kaulii commented 5 months ago

Implementierung vom SmartLogger 3000. Der Zähler hat die Modbus Adresse 11. Dieser hängt nicht direkt am Wechselrichter, sondern am SL3000. WR1 = Modbus Adresse 1, WR2 = Modbus Adresse 2, Zähler DTSU666 = Modbus Adresse 11 WR1 hat den Batteriespeicher unter sich. hier bekomme ich mit dem Adapter auch schon Werte. Falls ich irgendwas zur verfügung stellen kann/darf/soll. Einfach melden.

Lg Michael Werte_iobroker_Huawei

bolliy commented 5 months ago

Hallo Michael,

da ich gerade mit der Umstrukturierung des Adapter befasst bin, werde ich mich vorest nicht mit der Umsetzung befassen.

LG Stephan

bolliy commented 4 months ago

Hallo Michael, ich habe den Adapter so umgebaut, dass ich ggf. den smartLogger300 implementieren kann. Siehe: https://forum.iobroker.net/topic/71768/test-adapter-sun2000-v0-1-x-huawei-wechselrichter

Würest du die neue V0.3.0 installieren und den SmartLogger3000 als ersten inverter ansprechen. Also mobus Inverter IDs : 11,1,2 anpassen. Im Log und im State sun2000.0.inverter.0.info.modelID nach der Model ID suchen. Die benötige ich um die Hardware zu identifizieren. Hast du die Modbus Definition Definitions von dem SmartLogger3000 für mich?

Und dann bin auf deine Reaktion gespannt. LG Stephan

Kaulii commented 4 months ago

Hallo Stephan,

habe es getestet, der SmartLogger3000 hat nicht die ID11, sondern die ID 0, dieser wird über den Adressbereich am 40000 angesprochen, siehe hier die Modbus Definition https://support.huawei.com/enterprise/en/doc/EDOC1100050690 somit erhält er im log unter info auch keinen Wert. test_modbus_sun2000

zum Bild: hier hab ich es mit adresse 11 Probiert.

Wenn ich es mit 0,1,2 teste habe ich die gleiche Meldung. Seltsam finde ich das er den Wechselrichter mit der Adress 1 dann aber auch nicht auslesen kann. Wechselrichter mit der Adresse 2 hat alle werte im Log. Als Fehlermeldung zeigt er folgendes an: test_modbus_sun2000

Wenn ich nur die beiden Wechselrichter eintrage modbus Inverter IDs: 1,2 erhält er folgende Meldung: test_modbus_sun2000_1_2

Die Meldung das nur 1 Client erlaubt ist, hatte ich mit der Version V.0.2.0 nicht.

LG Michael

.

bolliy commented 4 months ago

Ich werde zuerst den SmartCharger in den Adapter aufnehmen, da dieser deutlich einfachere States hat. Stephan

lcars79 commented 4 months ago

Hallo Kaulii, eine Frage zum SmartLogger3000 den du sicherlich hast. Wie schnell kannst du da momentan die Daten abfragen. Hintergrund ist der, dass der Dongle da etwas träge ist und z.T. mit Timeouts antwortet. Gibt es da einen großen Unterschied zum SmartLogger oder ist das vom Abruf her ähnlich? Momentan habe ich es geschafft bei mir ein Abrufintervall von 10s einzustellen und er braucht dann ca. 15s für einen Durchlauf laut Logs. Ich denke das ist schon hart an der Grenze.

Danke für deine Antwort.

Gruß Frank

Kaulii commented 4 months ago

Hallo Frank,

ich kann den Abrufintervall auf 5s einstellen. (kleiner aktuell nicht möglich) bekomme hier auch keine Timeouts. Der SL3000 wird bestimmt etwas schneller sein. Denke es ist aber auch abhängig wieviel Geräte ausgelesen werden. Zu meiner Konfiguration: 1x 10klM1 +20 Optimierer +1x Luna mit 15kwh und 1x 20ktlM2 + 54 Optimierer (sprich 2x WR) Jedoch funktioniert der Adapter bei mir noch nicht ganz. Die Werte des Meters kann ich aktuell nicht auswerten. Der Zähler DTSU666 muss in der Konfiguration mit dem SL3000 direkt am SL3000 angeschlossen werden. Somit kann der Zähler nur über die eingestellte Adresse (11) asgelesen werden.

@bolliy habe mit der konifguration noch einmal ein bisschen gespielt. mit der Konfigurationsreihenfolge: grafik habe ich keine eintragungen im Log mehr wie im obrigen Post geschriebenen.

grafik

Gruß Michael

lcars79 commented 4 months ago

Danke für die Info.

bolliy commented 4 months ago

Hi Michael, deinen Logger wollte ich auch noch implementieren. Jetzt werde ich zuerst die v0.4.0 auf npm veröffentlichen. Ich hoffe, dass ich bald dazu komme... Stephan

bolliy commented 4 months ago

Hi Michael, habe nun eine Test-Version hochgeladen, die den SmartLogger bedienen soll! Da ich keinen SmartLogger habe ist das natürlich ein Blindflug. Aber ich hoffe, dass es dennoch funktioniert.

Kannst also über gitHub einfache installlieren. So ähnlich müsste deine Settings aussehen. (Ip-Adresse muss aber angepasst werden)

VG Stephan

grafik

Kaulii commented 4 months ago

Hi,

super Arbeit!! Bin gerade am Testen. Es treten noch ein paar Fehler auf, aber die Werte vom Zähler sind größtenteils da. grafik im ordner Slogger wird nichts angezeigt. der Smartlogger hat die ID 0, falls du hier auch irgendwelche Werte auslesen würdest?

Was wird über die ID 100 abgefragt? grafik

Die 40007 muss vom SL3000 über die ID 0 abgefragt werden. Error while reading from 192.168.3.108 [Reg: 40007, Len: 1, modbusID: 100] with: Port Not Open

Werde es morgen Tagsüber weiter beobachten und mich hier Melden.

Danke schonmal für deine Mühe :-)

Kaulii commented 4 months ago

grafik

Kaulii commented 4 months ago

Der Wert "sun2000.0.meter.accumulatedReactivePowe" im Adressbereich 32361 steht auf 0kwh, wenn ich den Wert Auslese bekomme ich folgenden Wert: grafik Liegt es vlt an dem 64Bit Integer Wert?

bolliy commented 4 months ago

Hi Michael, kannst wieder testen ... update über gitHub... Ich bin gespannt.

Stephan

Kaulii commented 4 months ago

Hi,

Werte vom Messgerät sind jetzt alle da! (also auch die 64Bit Werte) grafik unter Slogger passt schonmal die Anzahl der Welchselrichter :-) Der Wert vom 42256 habe ich in meiner Modbusregister Tabelle für den SL3000 nicht. Hast du eine andere Liste? Im Log hab ich noch folgende Meldungen: grafik

grafik

Kaulii commented 4 months ago

vom 20KTL werden die Optimierer nicht mehr angezeigt. Ging in der Version 0.3.0 meine ich noch. schöne Grüße Michael

bolliy commented 4 months ago

Hallo Michael, mein WR sun2000 M1 macht keine Fehlermeldung. Nun sehe ich aber, dass ich ein 16Bit Register zu viel auslese. Was steht bei deinem 20KTL in den States sun2000.0.inverter.0.info.model und sun2000.0.inverter.0.info.modelID ? Es gibt etliche WR Versionen, die alle etwas anders sind. An der ModelId kann ich das ganz gut zuordnen.

Neue Version ist auf gitHub ....bitte testen ;)

bolliy commented 4 months ago

modbus interface definitions: https://github.com/bolliy/ioBroker.sun2000/blob/main/docs/definitions.md

Kaulii commented 4 months ago

Super 👍 Siehe hier: grafik die 15 sec sind was geschuldet?

Habe gerade den SL3000 noch auf das Update V300R023C10SPC311 gezogen, das war nicht aktuell. Wundert mich das die App das bisher nie bemängelt hat. Daher konnte ich auch die oben geschriebnenen Register nicht abrufen. unter dem Register 40007 bekomme ich aber auch keine Uhrzeit ausgelesen. Sprich Wert 0 Siehe hier: grafik

grafik Ich denke aber soweit funktioniert alles bestens! Danke :-)🥇

Kaulii commented 4 months ago

sun2000.0.inverter.1.info.model =SUN2000-20KTL-M2SUN2000-12 sun2000.0.inverter.1.info.modelID = 435

bolliy commented 4 months ago

Hallo Michael, wenn du weitere Datenpunkte von dem SmartLogger haben möchtest, kannst du mir diese gerne wieder per Email schicken.

Ich würde dich gerne verpflichten ein kleine Dokumentation (1 html Seite sollten reichen) in englisch zur Integration des Smartloggers zu schreiben, die ich gerne hier https://github.com/bolliy/ioBroker.sun2000/tree/main/docs einbinden würde. Den Inhalt der Doku als Fragen formuliert:

Würdest du das für das mich machen? LG Stepan

bolliy commented 4 months ago

https://github.com/bolliy/ioBroker.sun2000/blob/68db6267fbf3645f053302eb90e46f7ad23c087d/lib/drivers/driver_inverter.js#L38

Hier siehst du, dass ich deinen WR nicht als Serie M1 einstufe. Das achaue ich mir gerne nochmal die https://www.photovoltaikforum.com/core/attachment/315028-solar-inverter-modbus-interface-definitions-pdf/ an. Ich melde mich ... Stephan

bolliy commented 4 months ago

die 15 sec sind was geschuldet? Eigentlich 5 Sec je Device.

Das werde ich noch für den SmartLogger anpassen, da der sicherlich robuster als der SDongle sien wird.

Kaulii commented 4 months ago

Ah okay, die Geräte SUN2000-8KTL-M2, SUN2000-10KTL-M2, SUN2000-12KTL-M2, SUN2000-15KTL-M2, SUN2000-17KTL-M2 und SUN2000-20KTL-M2 können auch die Optimierer.

= 430 bis 435.

Mit der Dokumentation kann ich mich gerne Versuchen ;-) wird aber einige Tage dauern.

bolliy commented 4 months ago

so Michael, die M2 und höher werden nun auch wie M1 beahndelt. Also 2te BatteryUnit und Optimizer.

Intervall von 5 Sec gegenüber dem SmartLogger sollten nun auch möglich sein. Bitte testen und mir sagen ob es noch Probleme gibt. Und wie sieht das Timing aus? Also treten bei 5 Sec Intervall timeouts im Log auf. Wenn das gut läuft würde ich den SLogger in die v0.5.0 aufnehmen und publishen ;) LG Stephan

Kaulii commented 4 months ago

Hi Stephan, werde ich gleich Testen!

aufpassen! an den M2 Geräten ist keine BatteryUnit mögich! Jedoch die Optimizer. Aktuell gibt es eine neue Serie: die MB0 Geräte Diese können dann auch BatteryUnit. Mit dem größten Gerät 25ktl-Mb0

https://ske-solar.com/wp-content/uploads/2024/01/DataSheets_SUN2000-12-25K-MB0_V01_2023-10_EN.pdf

Kaulii commented 4 months ago

Optimizer sind wieder im Register enthalten:👍 grafik

Habe keine timeouts im log bei den 5sec. grafik grafik

läuft Perfekt! Gebe nachmittags nochmal Rückinfo ob im Log ggf. Fehler sind.

LG Michael

bolliy commented 4 months ago

Ich würde gerne deinen Issue später schließen, sofern die Änderungen auf den issue referrenziert wurde ;) Da habe ich mich mißverständlich ausgedrückt. Ich meine die Battriepacks. BatteryUnits ist sicher etwas anderes - oder?

Kaulii commented 4 months ago

also an den M2 Geräten kann man keine Luna2000 anschließen. Ich hoffe wir reden jetzt vom gleichen :-) Ja, darfst du schließen.

Läuft einwandfrei, im Log ist nichts!

bolliy commented 4 months ago

Das der M2 keine Luna anschließen lässt, wusste ich nicht. Kannst du mir dann bitte den Battery Path sun2000.x.inverter.0.battery mal zeigen? Nicht, dass dort "unsaubere" States stehen.

Kaulii commented 4 months ago

grafik Alles Prima, der Ordner Battery ist leer.

Kaulii commented 4 months ago

und hier vom 10 ktl grafik