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!