Home Assistant Einbindung vom Deye 12k und baugleiche (Sunsyk, solarman...)

@amiko das ist doch besser raus zu lösen in eine neuen Beitrag, kommt alles durcheinander...

@summer-of-69 was David da angeht schaut echt gut aus schon mal. mal testen, dachte eigentlich das die WLAN Abfrage in der Abfrage nicht so schnell Daten liefern kann, scheint aber nicht so zu sein... die ESP32 sind zwar nett, aber haben auch ab und an ihre Zicken...
Hoffentlich bekommt er die Steuerung darüber auch bald hin, das wäre super.

@tsg,

ich hab mich durch etliche Forumsseiten durchgearbeitet und so langsam beginnt es im Kopf zu schmoren.

Auf Github hab ich deinen Beitrag gefunden, aber du schreibst, dass es noch nicht getestet wurde:

select: ####################################### ## Under developmnet - still testing ## ####################################### # 98 - 1 / 111 - 0 -> Lithium (BMS) # 98 - 0 / 111 - 0 -> Use V # 98 - 0 / 111 - 1 -> Use % # 98 - 0 / 111 - 2 -> No Bat - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: "${device_type} Control Mode" id: ${device_type}_control_mode address: 98 value_type: U_WORD optionsmap: "Lead Battery": 0 "Lithium Battery": 1
Hast du mittlerweile neue Erkenntnisse? Du hast es unter "select" definiert.

Von @linuxdep hab ich diesen Code, der unter "switch" steht, aber anstelle einer erwarteten 0 oder 1 ein "ON" oder "OFF" ausliest:

switch:
- platform: modbus_controller
use_write_multiple: true
modbus_controller_id: ${modbus_controller_id}
name: ${device_type}_Battery_Typ
register_type: holding
address: 98
bitmask: 1
entity_category: config
icon: "mdi:toggle-switch"
Letzteren Code von @linuxdep hab ich im Einsatz, ohne dass ich etwas negatives sehe, außer halt dem Eintrag "OFF" für dieses Register.

@linuxdep, ich hatte auch hier noch gefragt: https://www.akkudoktor.net/forum/deye-wechselrichter/deye-hybrid-wr-standby-wirkungsgrad-womit-muss-man-rechnen-was-kan-ich-erwarten/paged/9/#post-222796

Ich bitte auch um Entschuldigung für den Doppelpost, aber die Info bzgl. des Registers 98 ist auf soviele Seiten in diesem Forum und auch bei Github verteilt, dass es schwer ist dem richtigen Faden zu folgen.

Viele Grüße

Gisbert

na ja on entspricht 1 und off 0, ein Schalter in HA hat nun mal ON/OFF als Angaben...

schaut halt so bei mir aus

@Gisbert

ja, in der tat habe das nicht weiter verfolgt... Ist bei mir aktuell nicht in Verwendung. Bezieht sich eigentlich nur auf die Logiktabelle. Der Code ist in Ordnung. Und als Option Map oder Schalter. Ja gut bei 2 Zuständen, such es dir aus :wink:

Es gibt halt die 2 Register die passen müssen.

und Register 111:

So lange du aber nur über ModBus / Homeassistent die Batterie verwendung ein/aus schalten möchtest, reicht das 111 Register. Wenn du aber mal am HMI am WR die Umschaltung vornimmst, kann sein die Register passen nicht mehr.

Um wirklich sicher zu sein könntest du auch noch abfangen, dass Set the Deye at its lowest possible self-consumption · Issue #31 · klatremis/esphome-for-deye · GitHub

Hast du vor nach SOC zu gehen oder nach Spannung? Wenn du nur zwischen "Use V" und "No Bat" schalten möchtest reicht dir die 111. Wenn du aber mit BMS und SOC arbeiten möchtest, dann musst du dich auch noch um 98 kümmern.

Klar soweit? Sonst nochmals fragen...

Nicht wirklich, wenn du nur per Modbus umschaltes, dann reicht Register 111, wenn du aber mal um WR, warum auch immer, die umstellung vor nimmst, dann stellet der WR bei No battery auch von LFP auf Blei zurück (Register 98). Also ist bei mir nur zur Sicherheit um ggf. umstellen zu können wenn durch was auch immer (FW update, Handeingriff, Sonnensturm...) das Register nicht auf LFP steht.

@tsg und @linuxdep,

ich hab jetzt den Code von @tsg für das Register 98 genommen, aber auch natürlich den Hinweis von @linuxdep berücksichtigt und mir entsprechende Vermerke im Code und in meiner Hausautomation gesetzt. Außerdem wird das Register bei einem Wert von 0 jetzt als Lead Battery ausgelesen, was ein weiterer Hinweis ist, falls ich jemals den Li Mode (BMS) nutzen sollte, was ich aber nicht plane.

Vielen Dank. Damit ist es für mich eindeutiger formuliert und ich hab wieder ein bißchen dazu gelernt.

Viele Grüße Gisbert

@summer-of-69 Hallo, ganz herzlichen Dank für deine Tipps! Leider habe ich jetzt lange nicht hier hereingeschaut. Es hat sich ja offenbar auch einiges getan. Ich schaue mir das mal an! Ohne zusätzliche Hardware (Raspi ist vorhanden) wäre mir natürlich am liebsten.

@summer-of-69 Habe jetzt nach längerer Pause wieder die Zeit gefunden, mich um HA zu kümmern. Habe HACS installiert und Davids Integration installiert, aber der Solarman startet nicht erfolgreich. Habe einen Bug Report bei David eröffnet. Sowohl Raspi als auch der Deye sind über LAN angebunden. Hat hier jemand vielleicht einen Tipp?

Die Integration von David kommuniziert mit Deye über den WLAN-Stick, nicht über LAN.

Sollte egal sein ob es dann per WLAN oder LAN weiter geht, die IP ist entscheidend.

@Solarmik Sorry, habe erst jetzt Deine Rückfrage gesehen.

Das Solarman Dongle kommuniziert über WLAN, dazu brauchst Du kein LAN Kabel. Daher verstehe ich nicht ganz was Du meinst.

Die RJ45 Belegung für RS485 ist nicht standardisiert, da kocht jeder sein eigenes Süppchen. Wenn Du den Adapter also nicht explizit als Deye-Modbus Adapter gekauft hast, kannst Du den vermutlich nicht verwenden. Normale RS485 Adapter haben Schraubklemmen für "A" und "B" (und ggf. "GND"). Ich habe ein fertiges Netzwerkkabel genommen und einen RJ45 Stecker abgeknipst. Die orangene Ader kommt dann an Klemme "A" und die orange-weiße an "B" (und ggf. grün-weiß an "GND"). Das ist noch viel detaillierter in der Doku des Sunsynk-Addons beschrieben: Adaptors & Wiring | Deye/Sunsynk

Einen USB-RS485-Adapter kannst Du direkt an den Raspi anschließen, in der Sunsynk-Config steht dann z.B. "- PORT /dev/ttyUSB0". Ich habe einen Ethernet-RS485 Adapter, dann heißt es z.B. "- PORT tcp://192.168.47.11:502". Siehe Configuration | Deye/Sunsynk

Im Sunsynk Addon konfigurierst Du die Zugangsdaten zu Deinem MQTT Broker. Wenn Du noch keinen MQTT Broker hast, installiere in HA das Mosquitto MQTT Addon. Die Messwerte vom Sunsynk Addon erscheinen dann dank Auto-Discovery automatisch im HA-Dashboard.

Wenn das so weit funktioniert, kannst Du Dir überlegen, welche Sensoren Du brauchst. Welche es gibt kannst Du in den Quellen nachschlagen (z.B. sunsynk/src/sunsynk/definitions/three_phase_common.py at main · kellerza/sunsynk · GitHub ). Für "Sensor(678, "PV2 voltage", VOLT, 0.1)" müsstest Du dann in der Sunsynk-Config im Feld SENSORS "pv2_voltage" eintragen (kleingeschrieben_mit_underscore_statt_space).

Weiterhin habe ich bei mir alle Sensoren mit Einheit "W" (Watt) auf 1s Abfrageintervall gestellt. Wie das geht findest Du unter Schedules | Deye/Sunsynk

Hoffe das hilft Dir weiter.

1 „Gefällt mir“

Hallo,

ohne den Tread komplett gelesen zu haben, hier meine Frage.

Ich verwende "GitHub - klatremis/esphome-for-deye: Esphome component for Deye 3 phase inverters for Home Assistant", mit dem Deye 12k. Auslesen der Werte klappt sehr gut, aber nicht beschreiben.

Hat jemand geschafft, die Werte des Deye per Modbus zu verändern?

"use_write_multiple: true" ist gesetzt

Sollte theoretisch gehen, hat jemand das gleiche Problem?

Gruß

Peter

@peter-pan01,

Hallo Peter,

das geht. Ich nutze zwar nicht den Code von klatremis, aber das ist für deine Fragestellung nicht relevant. Auf GitHub gibt es einige Projekte zum DEYE und ESPHome, die alle mehr oder weniger vergleichbar sind. Ich hab meinen Code für meine Bedürfnisse entsprechend angepasst, also eine weitere Variante erzeugt.

Zum Auslesen und Beschreiben der Register nutze dazu MQTT.

Welches Register möchtest du denn gerne beschreiben? Dann könnte ich dir entweder meinen Code und/oder Literaturstellen geben, von denen ich meine Infos her hab.

Viele Grüße Gisbert

Ich würde mich mal einklinken, kann nämlich bis jetzt auch nur lesen. Mich interessieren speziell die Register zur Batterieladesteuerung, also wann welcher minimaler Batterieladestand herrschen soll und ob aus dem Netz nachgeladen wird. Wenn ich die schreiben kann kann ich das automatisieren um auf flexible Stromtarife zu reagieren. Registernummern weiss ich leider nicht.

Aber prinzipiell ist es egal, oder? Das Prinzip sollte immer gleich sein. Sobald man die korrekte Registernummer weiss funktioniert es immer gleich?

Ja, wenn man sich an Vorgaben in ESPHome hält.

Nein, wenn man glaubt, dass Kopieren reicht.

Geht ohne Probleme, auch über Solarman oder Deye Cloud.

@Gisbert

Hallo Gisbert,

danke für die Antwort.

Ich habe auf die klatremis Seite verwiesen, um zu zeigen welche Hardware und Code ich benutze. Bei dem Code gibt es auch fertige Karten fürs Dashboard, die ich benutze.

Das ist switch aus der Config. Ich gehe davon aus, dass bei der Vorgabe "use_write_multiple: true" ich den Register schalten kann.

switch:

  • platform: modbus_controller

use_write_multiple: true

modbus_controller_id: ${modbus_controller_id}

name: ${device_type}_Solar_sell

register_type: holding

address: 145

bitmask: 1

entity_category: config

icon: "mdi:toggle-switch"

Kannst du mir ein Beispiel machen wie das bei dir in der Config aussieht bei einem switch?

Bin ich falsch in der Annahme, dass wenn ich die Register lesen kann, dann sollte auch das Beschreiben funktionieren?

Welches Register möchtest du denn gerne beschreiben? Dann könnte ich dir entweder meinen Code und/oder Literaturstellen geben, von denen ich meine Infos her hab.

Würde gerne beides nehmen.

Ich glaube, wenn ich es sehe, dann könnte ich mir was zusammenbasteln.

Wie hast du das mit MQTT gelöst?

Gruß

Peter

@Amiko

Danke für die Antwort.

Das ist schon mal gut und beruhigend zu wissen, dass es funktioniert.

Hast du tatsächlich mit der Hardware und Code, die Klatremis verwendet, Register lesen und schreiben können?

Kannst du mir den Code zur Verfügung stellen?

Gruß

Peter

@peter-pan01,

du hast eine PN.

Viele Grüße Gisbert

@Gisbert

vielen Dank, werde mir heute Abend ansehen.

LG

Peter