Deye SUN-12K-SG04LP3 mit Modbus auslesen

Begonnen von mfischer-ffb, 09 April 2023, 22:18:26

Vorheriges Thema - Nächstes Thema

XBuschman

Hallo,
ich bekomme die Abfrage nicht ans Laufen. Folgende Punkte habe ich durchgeführt:
Im Deye Menü ,,Erweiterte Funktion" unter Modbus SN" eine 3 eingetragen. Das andere Control steht auf Slave (wie auf dem Bild in meinen Beitrag weiter oben).
Eine Verbindung über der ModeBus Stecker an den USB-RS485 Adapter hergestellt wobei am RJ45 Stecker Pin 1 -> B, Pin 2 -> A und Pin 3 -> GND ist. Die Leitungen habe ich schon mehrfach ,,durchgeklingelt". Die beiden Endpunkte sind aktuell nicht mit Abschlusswiderständen versehen.

Der USB RS485 Adapter basiert auf einen FTDI FT232 Chip und taucht als ttyUSBx Device auf.
Die FHEM Konfiguration habe ich aus dem ersten Beitrag von mfischer-ffb ,,geklaut". Dabei habe ich sowohl die ID 3 und die ID 1 versucht.
Beide Devices (Modbus und ModbusAttr) haben den Status ,,opened". Readings erhalte ich keine.
Im Log File kommt folgende Meldung:

DeyeModbus: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h514, len 1, master device DeyeMod, reading Akku_Laden_kWh_Tag (getUpdate for Akku_Laden_kWh_Tag len 1), queued 2.00 secs ago, sent 2.00 secs ago

An den BMS Port kann ich nicht gehen, da ich einen Akku installiert haben und der Port belegt ist.

Zudem wird bei mir die Leistung nicht mit den Sensor-Klemmen im Deye gemessen, sondern mit einem externen Gerät von Eastron, welche am ,,Meter-485" angeschlossen ist. Nach meinem Wissensstand läuft die Kommunikation auch über das Modbus Protokoll. Das Eastron ist entsprechend im Deye ,,Erweiterte Funktion" Menü konfiguriert.

Ich habe aktuell keine Idee mehr. Vielleicht hat jemand von euch noch einen Tipp?

Danke und Gruß,
Rainer





Jojo11

Je nach Firmware kann es sein, dass der Modebus-Port nicht funktioniert. Welche Versionen betroffen sind kann ich leider nicht sagen. Allerdings könntest du den BMS Port mit einer Y-Verteilung doch nutzen, da das BMS andere Pins benötigt (CAN) als FHEM (RS485). Schau mal auf den letzten Seiten der Anleitung des Deye - da findest Du die Belegung.

XBuschman

Welche Firmware ist denn bei deinem Gerät installiert? Meine Versionen habe ich als Screenshot angehängt.

Jojo11


XBuschman

Ich werde mal versuchen an ein Update zu kommen.
Haben die anderen, bei denen die Abfrage bereits funktioniert, auch die neuere Firmware installiert (siehe Versionsangaben von Jojo11)?

Jojo11

Ich bin immer noch an der Implementierung einiger Register. Aktuell scheitere ich an Register 146 (time of use). Das Register deckt mehrere Tage ab:
Bit0   0 disable   1 enable
Bit1   Monday  0-disable 1-enable
Bit2   Tuesday ...

Wie setze ich das um? Einfache Schalter on/off bzw 1/0 funktionieren sehr gut, aber hier komme ich nicht weiter. Hat das schon jemand umgesetzt?

XBuschman

Hallo,
hier mal mein aktueller Stand.
Ein Firmware Update wurde inzwischen durchgeführt. Aktuell läuft bei mit:
Main 2005-1123-1807
Hmi 1001-C030
Es gibt noch eine Protokoll Version: 0104 die wohl nicht aktualisiert wurde.

Leider kann ich auch nach dem Update keine Daten am Mod(e)bus Port empfangen.
In einem Handbuch, in dem auch der Mod(e)Bus Port dokumentiert ist steht ,,Hinweis: Für einige Hardwareversionen ist dieser Port nutzlos". Das scheint wohl auf meinen Deye zuzutreffen.

Ich habe mich dann an die 485 Pins des BMS Ports gehängt (wie von Jojo11 vorgeschlagen) und siehe da, die Daten können abgefragt werden.

XBuschman

Hallo,
ich bin auf der Suche nach dem Register welches den Netzbezug bzw. die Einspeiseleistung angibt (siehe Markierung im Bild).
In der Registerbeschreibung habe ich noch keinen passenden Eintrag gefunden.
Vielleicht hat ja jemand einen Tipp für mich  ::)

Jojo11

Das müsste 625 sein ("Grid_side_total_power_W")

XBuschman

Davon war ich auch ausgegangen, aber zum einen passt der Wert nicht zur Anzeige des Displays, bzw. zu den geloggten Werten in Solarmanpv (Einspeiseleistung), zum anderen müsste der Wert ja vorzeichenbehaftet sein. Positiv, wenn ich Strom aus dem Netz beziehe und negativ wenn ich Strom einspeise.

Jojo11

Das liegt am Format. Das hier sollte klappen:
attr Deye dev-type-S16-unpack s>

attr Deye obj-h625-reading Grid_side_total_power_W
attr Deye obj-h625-type S16

XBuschman

#26
Ja mit der richtigen Formatierung passen jetzt die gelesenen Werte mit den Werten auf der Anzeige.

Für die aktuelle PV Gesamtleistung (Summe aus beiden Solarpanel ,,Strängen") scheint es aber kein passendes Register zu geben. Ich hätte den Wert in h636 (Produktion_W) erwartet, dieser Werte ist aber immer um gut 200W höher als die Displayanzeige.
Addiere ich die Werte der einzelnen ,,Stränge" h672 (PV1_W) und h673 (PV2_W) entspricht das der Anzeige am Deye. Von daher kein Problem.

Vielen Dank für die Hilfe!  :)

Tobias

Hi,
Hat es denn mal jemand hiermit probiert?
Ich würde gerne den Deye mit integrieren, brauche aber jemand der die registerdefinition erstellt und anpasst.

Wenn ich die Modbus doku richtig lese muss nur die Konfiguration einmal erstellt werden und dann rennt es für alle anderen auch :)

https://github.com/tobiasfaust/SolaxModbusGateway
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Jojo11

Wenn du das auf einem ESP realisieren möchtest, gibt es doch schon dieses Projekt:
Deye ESP bridge
Da brauchste das Rad nicht neu zu erfinden  ;)

Tobias

Zitat von: Jojo11 am 17 Juni 2023, 20:24:18Wenn du das auf einem ESP realisieren möchtest, gibt es doch schon dieses Projekt:
Deye ESP bridge
Da brauchste das Rad nicht neu zu erfinden  ;)

interessant, das kannte ich noch nicht... Allerdings ziemlich aufwändig da eine eigene Platine notwendig ist
Ich erfinde auch nicht neu, ich muss ausschließlich  eine JSON Config anpassen damit es läuft. Das Projekt läuft bereits mit unterschiedlichen Wechselrichtern bereits ;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter