Deye SUN-5K-SG04LP03-EU als MQTT Wechselrichter, da Deye Modul bei mir nicht funktioniert

Fragen zur Nutzung, Features, usw..
Antworten
mkoegel
Beiträge: 8
Registriert: Sa Nov 20, 2021 10:41 am
Has thanked: 1 time

Deye SUN-5K-SG04LP03-EU als MQTT Wechselrichter, da Deye Modul bei mir nicht funktioniert

Beitrag von mkoegel »

Hallo zusammen,

da ich das Deye Modul mit meiner Version des Wechselrichters und LSW-3 Wifi Modul nicht zum laufen bekommen habe, hab ich mich gestern mal dran gemacht ihn als MQTT-Wechselrichter einzurichten. Ich nutze den Umweg über HomeAssistant, da dort mit dem Solarman HAC der Wechselrichter einwandfrei funktioniert.
Da wahrscheinlich andere ähnliche Probleme haben hier mal mein Vorgehen inspiriert von folgendem Beitrag: viewtopic.php?p=82326#p82326 von @Cheetah

Setup:
OpenWB 2.1.3 + Patch 1
HomeAssistant 2024.3 im Docker Container (auf seperatem RaspberryPI4)
MQTT-Explorer zur Überprüfung der MQTT Konfiguration. IP der OpenWB, Port 1883, User und PW leer, Validate Certificate und TLS an.

Installation auf der HomeAssistant Seite:
- MQTT Integration
- HACS
- Solarman Integration https://github.com/StephanJoubert/home_ ... t_solarman
- OpenWB2mqtt https://github.com/a529987659852/openwb2mqtt (optional)

Konfiguration HomeAssistant:
-MQTT Integration mit OpenWB2 MQTT Server verbinden. IP der OpenWB, Port 1883, User und PW leer.
- Solarman Integration. IP und Seriennummer des Loggers, Port 8899 und deye_sg04l3.yaml als Inverter Definition

Danach sieht man alle Wechselrichter Daten unter den Solarman.* Entities und im MQTT Explorer sieht man neben openWB auch homeassistant auf der ersten Ebene.

Konfiguration OpenWB:
MQTT-Wechselrichter und MQTT-Speicher unter Konfiguration->Geräte und Komponenten anlegen.
Dort sieht man dann die nötigen MQTT Topics, die im nächsten Schritt in den Automationen verwendet werden.
MQTT-Zähler habe ich nicht angelegt, da ich ein EVU-Kit habe. Sollte aber im Prinzip analog gehen.

Automationen in HomeAssistant anlegen:
Ich hab das einezln über die UI gemacht. Hier das Ergebnis, das dann in automations.yaml erscheint.
Die OpenDTU Teile könnt ihr einfach rausnehmen. Ich hab noch zwei Hoymiles Wechselrichter für Carport und Garage, die am GEN Port des Deye hängen. Die IDs von Wechselrichter und Battery in den Topics müssen angepasst werden.

Code: Alles auswählen

- id: '1711813469902'
  alias: 'openWB: Set PV Power (W)'
  description: Sende PV-Erzeugungsleistung in Watt per MQTT an openWB
  trigger:
  - platform: state
    entity_id:
    - sensor.solarman_pv1_power
    - sensor.solarman_pv2_power
    - sensor.opendtu_power
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: '0'
      retain: false
      topic: openWB/set/pv/9/get/power
      payload: '{{ [ states(''sensor.solarman_pv1_power''),                 states(''sensor.solarman_pv2_power''),                 states(''sensor.opendtu_power'')
        ] | map(''float'') | sum | float * -1 }}'
  mode: single
- id: '1711814443669'
  alias: 'openWB: Set PV Total Energy (Wh)'
  description: Sende Erzeugte PV-Gesamtenergie in Wh per MQTT an openWB
  trigger:
  - platform: state
    entity_id:
    - sensor.solarman_total_production
    - sensor.opendtu_yieldtotal
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: '0'
      retain: false
      topic: openWB/set/pv/9/get/exported
      payload: '{{ [ (states(''sensor.solarman_total_production'')| float * 1000),                 (states(''sensor.opendtu_yieldtotal'')|
        float * 1000) ]                | map(''float'') | sum }}'
  mode: single
- id: '1711815636505'
  alias: 'openWB: Set Battery Power (W)'
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.solarman_battery_power
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: openWB/set/bat/11/get/power
      payload: '{{ states(''sensor.solarman_battery_power'') | float * -1 }}'
  mode: single
- id: '1711815913247'
  alias: 'openWB: Set Battery Imported (Wh)'
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.solarman_total_battery_charge
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: openWB/set/bat/11/get/imported
      payload: '{{ (states(''sensor.solarman_total_battery_charge'') | float * 1000)
        }}'
  mode: single
- id: '1711816123711'
  alias: 'openWB: Set Battery Exported'
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.solarman_total_battery_discharge
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: openWB/set/bat/11/get/exported
      payload: '{{ (states(''sensor.solarman_total_battery_discharge'') | float *
        1000) }}'
  mode: single
- id: '1711816403242'
  alias: 'openWB: Battery SOC'
  description: ''
  trigger:
  - platform: state
    entity_id:
    - sensor.solarman_battery_soc
  condition: []
  action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: openWB/set/bat/11/get/soc
      payload: '{{ states(''sensor.solarman_battery_soc'') }}'
  mode: single
  


Jedes Mal, wenn sich einer der Werte im HomeAssistant ändert wird er über MQTT publish an die OpenWB geschickt.

Bei Interesse kann ich gerne auch noch ein paar Screenshots machen.

Falls jemand den gleichen WR mit dem Deye Modul ohne extra ModBus Bridge zum laufen gebracht hat interessiert mich das natürlich auch brennend!
Antworten