z-master42 / solarflow

Integrate your Zendure products (Hub 1200, Hub 2000, Hyper 2000 and Ace 1500) into Home Assistant via MQTT. My attempt at instructions.
41 stars 4 forks source link

need your help :-) #13

Open MorreMor opened 4 months ago

MorreMor commented 4 months ago

Hi,

könntest du mir bitte einen Gefallen tun? Dein Skript läuft absolut top! Ich würde gerne noch folgendes ändern bzw. hinzufügen wollen, bekomme es aber nicht hin. Ich würde gerne, sobald er im Bypass ist das WR Limit auf das maximum von 1.500 erhöhen. Wenn der Bypass aus ist und die Entladung der Batterien beginnt soll das Limit maximal bei z.b. 500 oder 600 sein. Sensor Bypass true / false steht zur Verfügung (über IOBroker über MQTT zu Homeassistant) Das wäre mega lieb!

z-master42 commented 4 months ago

Nutzt du die rudimentäre Skriptvariante oder die von mir angepasste. Am einfachsten anzupassen wäre es natürlich, wenn du deine Version hier als Kommentar postest.

MorreMor commented 4 months ago

Die von dir angepasste

alias: Anpassung Wechselrichter Leistung sequence:   - repeat:       while: []       sequence:         - if:             - condition: state               entity_id: binary_sensor.opendtu_zaun_reachable               state: "on"               alias: Wechselrichter erreichbar           alias: "-"           then:             - variables:                 altes_limit: >-                   {{ states('number.opendtu_zaun_limit_nonpersistent_absolute')                   | float(1) }}                 grid_sum: "{{ states('sensor.zukaufen_verschenken') | float(1) }}"                 maximum_wr: "{{ 1200 | float(1) }}"                 minimum_wr: "{{ 50 | float(1) }}"                 minimum_pack: "{{ 10 | int(1) }}"                 maximum_pack: "{{ 100 | int (1) }}"                 lower_limit_wr: "{{ 120 | float(1) }}"                 pack_level: "{{ states('sensor.solarflow_electric_level') | int(1) }}"                 solar_input: "{{ states('sensor.solar_aktuell_gesamt_hutte_und_zaun') | float(1) }}"               alias: Variablen definieren             - if:                 - condition: template                   value_template: "{{ pack_level == maximum_pack }}"                   alias: Akkustand = 100 %               then:                 - if:                     - condition: template                       value_template: "{{ solar_input > maximum_wr }}"                       alias: Solarleistung > maximale Wechselrichterleistung                   then:                     - service: number.set_value                       data:                         value: "{{ maximum_wr }}"                       target:                         entity_id: number.opendtu_zaun_limit_nonpersistent_absolute                       alias: Setze Limit auf 1500 W                   else:                     - if:                         - condition: template                           value_template: "{{ altes_limit <= solar_input }}"                           alias: Limit <= Solarleistung                       then:                         - service: number.set_value                           data:                             value: "{{ solar_input }}"                           target:                             entity_id: number.opendtu_zaun_limit_nonpersistent_absolute                           alias: Setze Limit = Solarleistung                       alias: "-"                       else:                         - variables:                             setpoint: "{{ (grid_sum + altes_limit - 30.0) | float(1) }}"                           alias: Neues Limit = Aktueller Verbrauch + Altes Limit - 40                         - service: number.set_value                           data:                             value: "{{ setpoint }}"                           target:                             entity_id: number.opendtu_zaun_limit_nonpersistent_absolute                           alias: Setze Limit = Verbrauch                   alias: "-"               alias: "-"               else:                 - if:                     - condition: template                       value_template: "{{ pack_level >= minimum_pack}}"                       alias: Akkustand >= 10 %                   then:                     - variables:                         setpoint: "{{ (grid_sum + altes_limit - 30.0) | float(1) }}"                       alias: Neues Limit = Aktueller Verbrauch + Altes Limit - 40                     - if:                         - condition: template                           value_template: "{{ setpoint > maximum_wr }}"                           alias: Neues Limit > 600 W                       then:                         - service: number.set_value                           data:                             value: "{{ maximum_wr }}"                           target:                             entity_id: number.opendtu_zaun_limit_nonpersistent_absolute                           alias: Setze Limit auf 600 W                       else:                         - if:                             - condition: template                               value_template: "{{ setpoint < minimum_wr }}"                               alias: Neues Limit < 50                           then:                             - service: number.set_value                               data:                                 value: "{{ minimum_wr }}"                               target:                                 entity_id: >-                                   number.opendtu_zaun_limit_nonpersistent_absolute                               alias: Setze Limit auf 50 W                           else:                             - if:                                 - condition: template                                   value_template: "{{ setpoint != altes_limit }}"                                   alias: Neues Limit != Altes Limit                               then:                                 - service: number.set_value                                   data:                                     value: "{{ setpoint | float(1) }}"                                   target:                                     entity_id: >-                                       number.opendtu_zaun_limit_nonpersistent_absolute                                   alias: Setzte neues Limit                               alias: "-"                           alias: "-"                       alias: "-"                   else:                     - variables:                         setpoint: "{{ (grid_sum + altes_limit - 30.0) | float(1) }}"                       alias: Neues Limit = Aktueller Verbrauch + Altes Limit - 40                     - if:                         - condition: template                           value_template: "{{ setpoint > lower_limit_wr }}"                           alias: Neues Limit > 120 W                       then:                         - service: number.set_value                           data:                             value: "{{ lower_limit_wr }}"                           target:                             entity_id: number.opendtu_zaun_limit_nonpersistent_absolute                           alias: Setze Limit auf 120 W                       else:                         - if:                             - condition: template                               value_template: "{{ setpoint < minimum_wr }}"                               alias: Neues Limit < 50                           then:                             - service: number.set_value                               data:                                 value: "{{ minimum_wr }}"                               target:                                 entity_id: >-                                   number.opendtu_zaun_limit_nonpersistent_absolute                               alias: Setze Limit auf 50 W                           else:                             - if:                                 - condition: template                                   value_template: "{{ setpoint != altes_limit }}"                                   alias: Neues Limit != Altes Limit                               then:                                 - service: number.set_value                                   data:                                     value: "{{ setpoint | float(1) }}"                                   target:                                     entity_id: >-                                       number.opendtu_zaun_limit_nonpersistent_absolute                                   alias: Setzte neues Limit                               alias: "-"                           alias: "-"                       alias: "-"                   alias: "-"         - delay:             hours: 0             minutes: 0             seconds: 5             milliseconds: 0           alias: Warte 5 s mode: single icon: phu:huawei-solar-inverter Mit freundlichen Grüßen Andreas Morawetz Am 08.04.2024 um 18:59 schrieb z-master42 @.***>: Nutzt du die rudimentäre Skriptvariante oder die von mir angepasste. Am einfachsten anzupassen wäre es natürlich, wenn du deine Version hier als Kommentar postest.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

provi1 commented 2 months ago

möchtest du den Wert in der Anzeige in HomeAssistant anpassen oder im Zendure Hub? Soweit ich weiß ist ein steuern des Sender Hub über MQTT aktuell nicht vorgesehen.