Nachdem mir hier so viele Leute mir geholfen haben mit Antworten und dem gesamten Wissen aus den Diskussionen,wollte ich auch mal was zurückgeben.
Es gibt bereits ein Thread der sich mit der Effizienz des Deye WRs beschäftig, wobei @laasa den WR ausschaltet und dafür ein Skript geschrieben hat. Er macht es jedoch nicht mithilfe von HomeAssistant, wobei ich das nun realisiert habe und euch zur Verfügung stellen wollte( Danke @laasa für deine Code in C der mir geholfen hat das Biepen zu deaktivieren)
Ich lese über einen ESP32 den Deye aus und das wird dann in HA übergeben. Den Code und die Anleitung findet ihr bei GitHub, wie viele das bereits nutzen. Damit ihr den Deye auschalten könnt, musst ihr noch das Register 80 bei switch: hinzufügen. Da die Software vom Deye (meines Erachtens teilweise recht schlecht programmiert wurde) beim Ausschalten des WR einen Fehler meldet, muss der Alarmton abgeschaltet werden. Dafür muss noch das Register 228 ausgelesen werden unter number:
Für die ESPHome Konfiguration einmal einen Ausschnitt für die benötigten Register:
#Hier der Code für den Schalter switch: - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: ${device_type}_Power_On register_type: holding address: 80 bitmask: 1 entity_category: config icon: "mdi:toggle-switch" #Zum Einschalten und Ausschalten des Alarmtones müssen bestimmte werde gesendet werden number: - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Beep1 name: "${device_type}-Beep1" address: 228 bitmask: 2 value_type: U_WORD
Um den Alarmton ein-/auschalten zu können müssen dem Deye bestimmte Nummer geschickt werden. Zum auschalten eine “8” und zum einschalten eine “13” (HEX=0xD).
Das Ein- und Ausschalten erfolgt über eine Automatisierung. Dabei sind die Auslöser zum Ausschalten:
- wenn die Batterie eine Spannung von unter 51,3V erreicht (mein LOW BAT)
- Monate Oktober bis März
- Batterieouput kleiner als 200W ist (für mich ist die Effizienz da schon zu gering)
- Zwischen 18 und 7 Uhr. Die Zeitbedingung ist einfach für die Dunkelheit, wobei ich auch darüber nachdenke dies über die PV Spannung zu steuern (bspw wenn sie unter 50V ist).
Automatisierung:
alias: Deye Ein-/Ausschalten Low Batt description: "" trigger: - platform: numeric_state entity_id: - sensor.deye_battery_voltage below: 51.3 id: Voltage_Low - platform: time at: "07:30:00" id: DeyePower_Off condition: [] action: #Power Off und zuvor den Alarmton ausschalten - if: - condition: and conditions: - condition: trigger id: Voltage_Low - condition: time after: "18:00:00" before: "7:00:00" - condition: template value_template: | {{states("sensor.deye_battery_output_power") | float(0) < 200 }} - condition: template value_template: | {{ now().month in [1,2,3,10,11,12] }} then: - service: number.set_value data: value: "8" target: entity_id: number.deye_beep1 - service: switch.turn_off data: {} target: entity_id: switch.deye_power_on else: [] #Deye morgens anschalten und danach den Alarmton reaktivieren - if: - condition: and conditions: - condition: trigger id: DeyePower_Off - condition: template value_template: | {{is_state("switch.deye_power_on", "off") }} - condition: template value_template: | {{ now().month in [1,2,3,10,11,12] }} then: - service: switch.turn_on data: {} target: entity_id: switch.deye_power_on - delay: "00:02" - service: input_boolean.turn_on data: {} target: entity_id: input_boolean.beep - service: number.set_value data: value: "13" target: entity_id: number.deye_beep1 else: [] mode: single
Ich hoffe, dass das euch helfen kann.
Achja das Problem ist nur: Ist der WR aus, sendet er keine Verbrauchsdaten mehr. Mein WR ist parallel und LOAD wird nur im Stromausfall genutzt sonst nie. Finde ich ein bisschen komisch, weil die Daten vom eastron sdm630 kommen eigentlich weiter an. Falls da jemand eine Lösung hat, gerne her damit.