@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.
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.
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
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.
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.
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.
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.
@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?
@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
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.
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?
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.