Deye SUN-12K-SG04LP3 mit Modbus auslesen

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

Vorheriges Thema - Nächstes Thema

mfischer-ffb

Hallo,

nachdem ich jetzt fast 2 Tage nach einer Lösung gesucht hatte den DEYE 12K via Modbus auszulesen und gescheitert bin hier die Lösung falls es jemanden ähnlich geht wie mir.

Mit der Modbus Adresse 00 die im Wechselrichter voreingestellt ist konnte ich mit FHEM keine Verbindung herstellen, erst als ich die Adresse auf 03 (Slave) geändert hatte und danach einen Power-reset durchgeführt habe funktionierte es.

Den RS485 USB adapter habe ich am BMS port angeschlossen Pin1 = B Pin2 = A Pin3 = GND

Ich hab noch nicht alle Register eingetragen weitere sind  hier zu finden. 

Gruß Markus

define Modbus_Deye Modbus /dev/ttyUSB0@9600
attr Modbus_Deye room DEYE

define Mod_Deye ModbusAttr 3 10
attr Mod_Deye IODev Modbus_Deye
attr Mod_Deye dev-h-combine 5
attr Mod_Deye dev-h-defPoll 1
attr Mod_Deye dev-h-defUnpack n
attr Mod_Deye obj-h514-expr $val * 0.1
attr Mod_Deye obj-h514-reading Akku_Laden_kWh_Tag
attr Mod_Deye obj-h515-expr $val * 0.1
attr Mod_Deye obj-h515-reading Akku_Entladen_kWh_Tag
attr Mod_Deye obj-h516-expr $val * 0.1
attr Mod_Deye obj-h516-len 2
attr Mod_Deye obj-h516-reading Akku_Laden_kWh
attr Mod_Deye obj-h518-expr $val * 0.1
attr Mod_Deye obj-h518-len 2
attr Mod_Deye obj-h518-reading Akku_Entaden_kWh
attr Mod_Deye obj-h519-reading Akku_W
attr Mod_Deye obj-h520-expr $val * 0.1
attr Mod_Deye obj-h520-reading Netzbezug_Kwh_Tag
attr Mod_Deye obj-h522-expr $val * 0.1
attr Mod_Deye obj-h522-len 2
attr Mod_Deye obj-h522-reading Netzbezug_Kwh
attr Mod_Deye obj-h529-expr $val * 0.1
attr Mod_Deye obj-h529-reading PV_kWh_Tag
attr Mod_Deye obj-h534-expr $val * 0.1
attr Mod_Deye obj-h534-len 2
attr Mod_Deye obj-h534-reading PV_kWh
attr Mod_Deye obj-h540-expr ($val -1000) * 0.1
attr Mod_Deye obj-h540-format %.1f
attr Mod_Deye obj-h540-reading Temp_DC
attr Mod_Deye obj-h541-expr ($val -1000) * 0.1
attr Mod_Deye obj-h541-format %.1f
attr Mod_Deye obj-h541-reading Temp_AC
attr Mod_Deye obj-h587-expr $val * 0.01
attr Mod_Deye obj-h587-format %.1f
attr Mod_Deye obj-h587-reading Akku_V
attr Mod_Deye obj-h588-reading Akku_SOC
attr Mod_Deye obj-h591-expr $val * 0.01
attr Mod_Deye obj-h591-reading Akku_A
attr Mod_Deye obj-h591-unpack s>
attr Mod_Deye obj-h598-expr $val * 0.1
attr Mod_Deye obj-h598-format %.1f
attr Mod_Deye obj-h598-reading L1
attr Mod_Deye obj-h599-expr $val * 0.1
attr Mod_Deye obj-h599-format %.1f
attr Mod_Deye obj-h599-reading L2
attr Mod_Deye obj-h600-expr $val * 0.1
attr Mod_Deye obj-h600-format %.1f
attr Mod_Deye obj-h600-reading L3
attr Mod_Deye obj-h609-expr $val * 0.01
attr Mod_Deye obj-h609-format %.2f
attr Mod_Deye obj-h609-reading Netzfrequenz
attr Mod_Deye obj-h625-reading Netzbezug_W
attr Mod_Deye obj-h630-expr $val * 0.01
attr Mod_Deye obj-h630-reading WR_L1_A
attr Mod_Deye obj-h631-expr $val * 0.01
attr Mod_Deye obj-h631-reading WR_L2_A
attr Mod_Deye obj-h632-expr $val * 0.01
attr Mod_Deye obj-h632-reading WR_L3_A
attr Mod_Deye obj-h633-reading WR_L1_W
attr Mod_Deye obj-h634-reading WR_L2_W
attr Mod_Deye obj-h635-reading WR_L3_W
attr Mod_Deye obj-h672-expr $val * 0.1
attr Mod_Deye obj-h672-reading PV1_W
attr Mod_Deye obj-h673-reading PV2_W
attr Mod_Deye obj-h676-expr $val * 0.1
attr Mod_Deye obj-h676-reading PV1_V
attr Mod_Deye obj-h677-expr $val * 0.1
attr Mod_Deye obj-h677-reading PV1_A
attr Mod_Deye obj-h678-expr $val * 0.1
attr Mod_Deye obj-h678-reading PV2_V
attr Mod_Deye obj-h679-expr $val * 0.1
attr Mod_Deye obj-h679-reading PV2_A
attr Mod_Deye room DEYE
attr Mod_Deye stateFormat L1 V<br>\
L2 V<br>\
L3 V<br>
attr Mod_Deye verbose 0

Gisbert

Hallo mfischer-ffb,

klingt interessant, vielen Dank für dein Engagement.

Vielleicht kann ich deine Lösung benutzen, wenn ich mir das gleiche Gerät zulege.

Kannst du etwas über die Gründe sagen, warum du dieses Gerät gekauft hast? Welche Erwartungen hast du an das Gerät und würden die erfüllt?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Gas-, Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

mfischer-ffb

Hallo Gisbert,
der Deye 12K ist ein Multifunktions Hybridwechselrichter, nicht ganz billig aber bietet alle erdenklichen möglichkeiten bis hin zum Strom-Generatoranschluss.
Hab ihn aber noch nicht aktiv im Einsatz somit kann ich hier noch nicht viel sagen die PV Module müssen noch montiert werden.
Gruß
Markus

Zitat von: Gisbert am 09 April 2023, 22:26:37Hallo mfischer-ffb,

klingt interessant, vielen Dank für dein Engagement.

Vielleicht kann ich deine Lösung benutzen, wenn ich mir das gleiche Gerät zulege.

Kannst du etwas über die Gründe sagen, warum du dieses Gerät gekauft hast? Welche Erwartungen hast du an das Gerät und würden die erfüllt?

Viele Grüße Gisbert

Jojo11

Damit hast du mir den entscheidenden Hinweis gegeben, vielen Dank!
Im Anhang findest Du das Dokument mit allen Registern von Deye, falls noch nicht bekannt.

Schöne Grüße
Jojo

Jojo11

Hast Du es schon geschafft, Werte zu ändern/schreiben? Ein erster Versuch lieferte ein "Timeout in Readanswer". Im log findet sich
Mod_Deye: Timeout in Readanswer, read buffer empty,
request: id 3, write fc 6 h115, len 1, value 000b, tid 240, master device Mod_Deye, reading Battery_capacity_ShutDown (set Battery_capacity_ShutDown), queued 2.00 secs ago, sent 2.00 secs ago

schöne Grüße
Jojo

mfischer-ffb

Schreiben hab ich noch nicht getestet, mein Deye hängt zwar an der Wand aber Akku und Module fehlen noch somit kann ich hier aktuell nicht viel testen....

Hab gestern noch einen Fehler bei der Akkustrom Anzeige behoben...

Jojo11

#6
Damit hatte ich gestern auch noch Probleme und habe es dann so gelöst:
attr Mod_Deye dev-type-S16-unpack s>
...
attr Mod_Deye obj-h591-format %.1f
attr Mod_Deye obj-h591-reading Battery_output_current_A
attr Mod_Deye obj-h591-type S16

Müsste aufs Gleiche hinauslaufen. 
Als Nächstes ist das Seplos BMS an der Reihe :D

Jojo11

Ich habe das Modbus-Dokument mal durch einen online-Übersetzer geschickt - das vereinfacht ein wenig das Lesen.


Jojo11

Schreiben geht jetzt auch. Folgende Zeile ermöglicht es:

attr Deye dev-h-write 16 # 10H

Die 10H habe ich aus der Tabelle in Kapitel 3  :)

kptkip

Komme leider nicht weiter.

Ich hab den Deye über ein RS485-ETH Device angeschlossen und folgendes Device in FHEM angelegt:

defmod Mod_Deye ModbusAttr 20 30 192.168.33.24:502 TCP
attr Mod_Deye userattr obj-h514-expr obj-h514-reading obj-h522-len obj-h522-reading obj-h534-len obj-h534-reading obj-h588-reading obj-h625-reading obj-h672-reading obj-h673-reading
attr Mod_Deye alias deye
attr Mod_Deye obj-h514-expr $val * 0.1
attr Mod_Deye obj-h514-reading Akku_Laden_kWh_Tag
attr Mod_Deye obj-h522-len 2
attr Mod_Deye obj-h522-reading Netzbezug_Kwh
attr Mod_Deye obj-h534-len 2
attr Mod_Deye obj-h534-reading PV_kWh
attr Mod_Deye obj-h588-reading Akku_SOC
attr Mod_Deye obj-h625-reading Netzbezug_W
attr Mod_Deye obj-h672-reading PV1_W
attr Mod_Deye obj-h673-reading PV2_W
attr Mod_Deye room Infrastruktur->Serverschrank
attr Mod_Deye verbose 0

setstate Mod_Deye opened
setstate Mod_Deye 2023-04-20 23:10:47 state opened

Er connected zwar das Gerät, aber ich bekomme keine Readings.
FHEM Revision: 22312 auf RasPI3B+,1xNeumannCUL,HMLAN,1xRasPi3B+,2xRasPI ZERO W
CUL_HM:HM-Sec-SCo, HM-CC-RT-DN
Fritz: Fritz!Box 6590C,DECT301,DECT200
Shelly:Shelly1,Shelly2, ShellyBulb Xiaomi: Schalter, Fensterkontakte HUE: ConbeeII
Tasmota:SonoffBridge, Stecker

Jojo11

#10
Schau Dir mal den ersten Beitrag oben an. Bist Du Dir sicher, dass Deine ID derjenigen im Deye entspricht (20)?

kptkip

#11
Bin nun auch auf ein USB-Device gegangen. Dabei u.A. auch die ID angepasst (01).  8)

Klappt! ;-)

Mein Problem ist nun allerdings, dass ich nur alle ~20 Minuten Daten bekomme, manche sogar noch seltener.

Habe mit
screen /dev/ttyUSB0 9600auch mal auf der shell gehorcht. Da kommt auch nicht häufiger was durch das Kabel.

Kann man das im Deye einstellen?

Hänge aktuell am BMS-Port dran. ist das am Modbus-Port evtl. anders?


[Update:] Am Modbus-Port kommen die Werte im quasi-Sekundentakt rein :-)
FHEM Revision: 22312 auf RasPI3B+,1xNeumannCUL,HMLAN,1xRasPi3B+,2xRasPI ZERO W
CUL_HM:HM-Sec-SCo, HM-CC-RT-DN
Fritz: Fritz!Box 6590C,DECT301,DECT200
Shelly:Shelly1,Shelly2, ShellyBulb Xiaomi: Schalter, Fensterkontakte HUE: ConbeeII
Tasmota:SonoffBridge, Stecker

XBuschman

Hallo,
ich habe Deye SUN-10K-SG04LP3 im Einsatz und möchte auch die aktuellen Betriebsdaten per FHEM auslesen. Für mich scheint der hier beschriebene Ansatz direkt über ModBus am Deye die Daten auszulesen der beste Ansatz zu sein.
Ich habe dazu aber noch ein Paar Fragen, von denen ich hoffe dass sie mir hier beantwortet werden können.

@mfischer-ffb: Du schreibst, dass du die Adresse auf 03 (Slave) geändert hast. Meinst du damit die Einstellung im Deye Menü ,,Erweiterte Funktion" (siehe Bild "Deye ModBus Menue.png")?

@kptkip: Ist der ModBus Port der Anschluss links neben dem BMS Anschluss? Da steht ModeBus dran. Ein Schreibfehler? Oder welchen Anschluss hast du genutzt? (Siehe Bild "Deye Ports.png").
Wieso musstest du bei dir die ID 01 einstellen und nicht die 03 wie oben beschrieben? Ist das bei dir im Deye Menü (siehe Punkt oben) so eingestellt?
Danke und Grüße,
Rainer

Blowfly

Hi,
habe das jetzt auch ausprobiert, funktioniert prima, vielen Dank dafür! Werde das auch noch etwas ergänzen und hier posten.

Zu den Fragen:
Zitat von: XBuschman am 27 April 2023, 10:12:25@mfischer-ffb: Du schreibst, dass du die Adresse auf 03 (Slave) geändert hast. Meinst du damit die Einstellung im Deye Menü ,,Erweiterte Funktion" (siehe Bild "Deye ModBus Menue.png")?
Denke ja, aber das ist wohl irrelevant, jedenfalls funktioniert es bei mir nur mit Adresse 1, obwohl ich dort auch 3 eingestellt hatte.

Zitat@kptkip: Ist der ModBus Port der Anschluss links neben dem BMS Anschluss? Da steht ModeBus dran. Ein Schreibfehler? Oder welchen Anschluss hast du genutzt? (Siehe Bild "Deye Ports.png").
Genau der Modebus ist es.

ZitatWieso musstest du bei dir die ID 01 einstellen und nicht die 03 wie oben beschrieben? Ist das bei dir im Deye Menü (siehe Punkt oben) so eingestellt?
Nein, aber geht auch nur bei mir mit der 1 (siehe oben).

Viele Grüße
Hans
FHEM 6.2 auf RaspBerry Pi 2 B; SDuino für IT Steckdosen und Livolo-Schalter; Jeelink für LaCrosse T&H Sensoren; OWServer mit DS18B20 T-Sensoren; ZigBee mit deCONZ (RaspBee), Alexa, Homekit

Jojo11

Bei mir funktioniert es mit der 03. Angeschlossen habe ich den Adapter am BMS-Port (nicht am ModeBus-Port).

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

Gisbert

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  ;)

Hallo,
gibt es irgendwo eine Bezugsquelle für die Platine, oder alternativ einen Datensatz bzw. Datei, damit man die Platine selbst bestellen kann?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Gas-, Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Nobbynews


Zitat von: Jojo11 am 17 Juni 2023, 20:24:18oder alternativ einen Datensatz bzw. Datei, damit man die Platine selbst bestellen kann?

Auf github gibt es doch ein Verzeichnis 'gerber'.
Das sollte das Gesuchte doch sein.


Gisbert

Hallo zusammen,
in der Zwischenzeit hatte ich den Gerberfile gefunden und direkt geordert. Da die Mindestbestellanzahl 5 Stück beträgt, ich aber max. 3 Stück benötige - falls überhaupt -, könnte ich demnach 2 Stück abgeben gegen Portoersatz. Bei Interesse bitte melden. Die Lieferzeit beträgt vermutlich 14 Tage.
Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Gas-, Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Jojo11

Zitat von: Tobias am 04 Juli 2023, 09:33:46
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 ;)

Was die Platine macht, kannst du auch selber verdrahten. Wenn du dein File vervollständigen möchtest, lohnt sicher ein Blick auf dieses Projekt. Die Register sollten ziemlich vollständig implementiert sein soweit ich das verfolgt habe. Ich persönlich sehe den Mehrwert im Vergleich nicht und bin selber ohnehin nicht an einer drahtlosen Lösung interessiert.

Manfi

Habe seit einigen Tagen meinen 12K in Betrieb und habe mir nach Muster von mfischer-ffb ein FHEM device aufgesetzt. Ich bekomme auch Daten jedoch gibt es sporadisch Fehlermeldungen im Log:

2023.08.08 15:06:37 3: Modbus_Deye: Timeout waiting for a modbus response, current frame / read buffer: 0103020000, id 1, fCode 3,
request: id 1, read fc 3 h679, len 1, master device Deye, reading PV2_I (getUpdate for PV2_I len 1), queued 7.62 secs ago, sent 3.00 secs ago, error: Invalid checksum 0000 received. Calculated a131
2023.08.08 15:22:18 3: Modbus_Deye: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h522, len 2, master device Deye, reading Netzbezug_Kwh (getUpdate for Netzbezug_Kwh len 2), queued 3.90 secs ago, sent 3.00 secs ago
2023.08.08 15:24:18 3: Modbus_Deye: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h518, len 2, master device Deye, reading Akku_Entladen_kWh (getUpdate for Akku_Entladen_kWh len 2), queued 3.46 secs ago, sent 3.00 secs ago
2023.08.08 15:26:32 3: Modbus_Deye: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h516, len 2, master device Deye, reading Akku_Laden_kWh (getUpdate for Akku_Laden_kWh len 2), queued 3.32 secs ago, sent 3.00 secs ago

woran kann das liegen?

MfG

Manfi
Hardware: Raspberry Pi2, SignalDuino 433, Sonoff/Tasmota, NodeMCU/ESPEasy, FS10

Manfi

#35
Um mir Einiges an Verkabelung zu sparen, habe ich jetzt die Kommunikation auf eine Serial-TCP Bridge mit ESP-01 (Tasmota) und RS485-TTL Adapter umgestellt. Es kommen zwar immer noch sporadisch timeouts, aber es läuft soweit. Deye is auf Slave Addresse 01 eingestellt. Spannungsversorgung von den RSD (12V) Klemmen im WR


Du darfst diesen Dateianhang nicht ansehen.
Hardware: Raspberry Pi2, SignalDuino 433, Sonoff/Tasmota, NodeMCU/ESPEasy, FS10

Gisbert

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  ;)

Hallo zusammen,

ich hab das oben zitierte Projekt umgesetzt. Ich kann damit sowohl den DEYE als auch den Akku (mit PACE-BMS) per MQTT abfragen, bzw. erhalte Werte. Es läuft nahezu perfekt, lediglich Fhem macht Schwierigkeiten, wenn ich neue Topics subskribiere. Ich benutze noch die alte Methode mit externem MQTT Broker (im nächsten Winter versuche ich die Umstellung auf MQTT2).

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Gas-, Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Jojo11

Hallo zusammen,

hat zufällig schon jemand hier erfolgreich Register 146 (die time of use Tabelle) implementiert und beschrieben? Ich verstehe nicht wie ich die einzelnen Bits für die Wochentage unterscheiden muss  :-\

schöne Grüße
Jojo

HansiMaier2

Zitat von: Jojo11 am 18 Oktober 2023, 07:23:51hat zufällig schon jemand hier erfolgreich Register 146 (die time of use Tabelle) implementiert und beschrieben? Ich verstehe nicht wie ich die einzelnen Bits für die Wochentage unterscheiden muss  :-\

schöne Grüße
Jojo

Wochentage? Bei mir hat diese Time-of-use Tabelle 6 verschiedene Zeitbereiche EINES Tages.
Und da ich faul bin nutze ich nur den ersten davon, er geht von 00:00 bis 23:55.
Der zweite Zeitbereich von 23:55 bis 00:00, alle anderen von 00:00 bis 00:00 damit sind die praktisch disabled.
Um 23:45 stelle ich die Uhr im Deye auf 23:30, um 00:00 wieder auf die aktuelle Zeit.
Damit nutzt der Deye immer nur den ersten Zeitbereich, in dessen SOC Setting schreibe ich jede Minute den gewünschten Wert.
Läuft prima.

Jojo11

Meine ich ja. Im Modbus-Doc von Deye steht monday, tuesday, ... - keine Ahnung was die sich dabei gedacht haben wie man das nutzt.
Mir geht es auch nicht darum, wie man das am Deye am besten einstellt (da nutze ich ohnehin identische Werte in allen Intervallen), sondern wie ich das hier mit dem Modbus-Modul in FHEM richtig auslese und beschreibe  ;)
Hast Du das schon umgesetzt?

HansiMaier2

Nee, lese hiermit wg. Deye, bin aber mit Node-Red unterwegs.
Mit dem Register 146 mach ich allerdings gar nix.
OK: bisher noch keinen Zweirichtungszähler, also darf ich ohnehin noch nicht einspeisen.
Testweise hatte ich es mal an, lief problemlos ohne 146er-settings.

Aus der Beschreibung des 146er Registers werde ich auch nicht schlau, ich sehe auch keinen Use Case dahinter, nur an bestimmten Wochentagen einspeisen zu wollen.
Liest aber sich fast so, als könne man hier definieren, ob (für Peak shaving / valley filling) hier auch die Batterieenergie genutzt werden soll. Will ich eh nicht, möchte nur Solar-Überschuß einspeisen.

Jojo11

Ok, wenn jemand das schon umgesetzt hat, bin für Hinweise dankbar :)

Gisbert

Zitat von: Jojo11 am 18 Oktober 2023, 13:52:20Ok, wenn jemand das schon umgesetzt hat, bin für Hinweise dankbar :)
Wie wäre es hiermit?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Gas-, Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Jojo11

Habe es zwischenzeitliche hinbekommen. Denkfehler meinerseits  ::) Die Endzeit vom Intervall n ist die Startzeit vom Intervall n+1. Ist im Deye auch so. Hatte ich übersehen.
WLAN (und somit ESP) versuche ich nach Möglichkeit zu vermeiden. Setze das lieber direkt in fhem um  :)

Marlon

In der Deye-Registerbeschreibung gibt es in der "5.3.03battery read only area" ja auch Daten für die Batterie ab Register 500.
Hat es schon jemand geschafft, auf diese Daten zuzugreifen, denn ab Register 500 gibt es ja die eigentlichen Deye-Daten mit allen Messwerten in der "5.2.03Read-only real-time attribute area."
Ich habe den Raspi zum Auslesen an die RS485-Buchse des Deye angeschlossen und kann den Deye auch immer nur unter Modbus-ID 1 ansprechen, egal welche Adresse im Deye eingestellt ist. Eine andere ID zum Zugriff auf die Batteriedaten ist daher auch keine Option. Möglicherweise bezieht sich diese Einstelladresse nur auf den Modbus am BMS-Anschluss.