Last active
August 11, 2025 09:23
-
-
Save kraeml/491760c9924a9afe1a442901a27fc9b6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| blueprint: | |
| name: Gerät steuern (30min-Verlauf + Akku-Leistung) | |
| description: > | |
| Schaltet Gerät ein, wenn Akku > Einschaltschwelle, Solarüberschuss > Limit | |
| und Akku-Leistung positiv ist (lädt). | |
| Schaltet aus, wenn Akku unter Ausschaltschwelle fällt, der Akkustand innerhalb | |
| von 30 Minuten gesunken ist oder Akku-Leistung unter Negativlimit liegt. | |
| domain: automation | |
| input: | |
| battery_level_entity: | |
| name: Akkustandsensor in % | |
| default: sensor.system_ziegelstein_sb_ladestand | |
| selector: | |
| entity: | |
| domain: sensor | |
| device_class: battery | |
| battery_power_entity: | |
| name: Akku-Leistungssensor (positiv = Laden, negativ = Entladen) | |
| default: sensor.system_ziegelstein_sb_akkuleistung | |
| selector: | |
| entity: | |
| domain: sensor | |
| device_class: power | |
| solar_power_entity: | |
| name: Solarstromsensor | |
| default: sensor.solarbank_2_e1600_pro_solarleistung | |
| selector: | |
| entity: | |
| domain: sensor | |
| device_class: power | |
| house_power_entity: | |
| name: Hausverbrauchsensor | |
| default: sensor.total_import_haus_1_8_0 | |
| selector: | |
| entity: | |
| domain: sensor | |
| device_class: power | |
| device_entity: | |
| name: Zu steuerndes Gerät | |
| default: switch.sonoff_s20_2_sonoff_s20_2_relay | |
| selector: | |
| entity: | |
| domain: switch | |
| battery_high_threshold: | |
| name: Einschaltschwelle Akku (%) | |
| default: 80 | |
| selector: | |
| number: | |
| min: 0 | |
| max: 100 | |
| unit_of_measurement: "%" | |
| battery_low_threshold: | |
| name: Ausschaltschwelle Akku (%) | |
| default: 92 | |
| selector: | |
| number: | |
| min: 0 | |
| max: 100 | |
| unit_of_measurement: "%" | |
| solar_surplus_threshold: | |
| name: Solarüberschuss (W) | |
| default: 250 | |
| selector: | |
| number: | |
| min: 0 | |
| max: 10000 | |
| unit_of_measurement: W | |
| battery_discharge_limit: | |
| name: Entladeleistungsschwellwert für Ausschalten (W, negativ) | |
| default: -50 | |
| selector: | |
| number: | |
| min: -5000 | |
| max: 0 | |
| unit_of_measurement: W | |
| battery_level_helper: | |
| name: Helper – Akkustand vor 30 Min | |
| default: input_number.akkustand_vor_30min | |
| selector: | |
| entity: | |
| domain: input_number | |
| trigger: | |
| - platform: state | |
| entity_id: !input battery_level_entity | |
| - platform: state | |
| entity_id: !input battery_power_entity | |
| - platform: state | |
| entity_id: !input solar_power_entity | |
| - platform: state | |
| entity_id: !input house_power_entity | |
| - platform: state | |
| entity_id: !input battery_level_helper | |
| condition: [] | |
| action: | |
| # 1. Eingaben aus dem Blueprint in Variablen übernehmen | |
| - variables: | |
| battery_level_entity: !input battery_level_entity | |
| battery_power_entity: !input battery_power_entity | |
| solar_power_entity: !input solar_power_entity | |
| house_power_entity: !input house_power_entity | |
| device_entity_var: !input device_entity | |
| battery_high_threshold_var: !input battery_high_threshold | |
| battery_low_threshold_var: !input battery_low_threshold | |
| solar_surplus_threshold_var: !input solar_surplus_threshold | |
| battery_discharge_limit_var: !input battery_discharge_limit | |
| battery_level_helper_entity: !input battery_level_helper | |
| # 2. Messwerte auslesen und berechnen | |
| - variables: | |
| battery: "{{ states(battery_level_entity) | float }}" | |
| battery_power: "{{ states(battery_power_entity) | float }}" | |
| solar: "{{ states(solar_power_entity) | float }}" | |
| house: "{{ states(house_power_entity) | float }}" | |
| surplus: "{{ solar - house }}" | |
| battery_prev: "{{ states(battery_level_helper_entity) | float }}" | |
| # 3. Hauptlogik | |
| - choose: | |
| # ---- Einschalten ---- | |
| - conditions: | |
| - condition: template | |
| value_template: "{{ battery > (battery_high_threshold_var | float) }}" | |
| - condition: template | |
| value_template: "{{ surplus > (solar_surplus_threshold_var | float) }}" | |
| - condition: template | |
| value_template: "{{ battery_power > 0 }}" | |
| sequence: | |
| - service: switch.turn_on | |
| target: | |
| entity_id: "{{ device_entity_var }}" | |
| # ---- Ausschalten ---- | |
| - conditions: | |
| - condition: or | |
| conditions: | |
| - condition: template | |
| value_template: "{{ battery < (battery_low_threshold_var | float) }}" | |
| - condition: template | |
| value_template: "{{ battery < battery_prev }}" | |
| - condition: template | |
| value_template: "{{ battery_power < (battery_discharge_limit_var | float) }}" | |
| sequence: | |
| - service: switch.turn_off | |
| target: | |
| entity_id: "{{ device_entity_var }}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment