so, ich habs geschafft - ohne NodeRed:
alias: PV Nulleinspeisung Proportional (10W Ziel)
description: >
Regelt die maximale Solarleistung, um einen Netzbezug von ca. 10W zu
erreichen. Kp-Faktor, Min/Max Solarleistung müssen ggf. angepasst werden.
triggers:
- seconds: /5
trigger: time_pattern
conditions:
- condition: state
entity_id: input_boolean.nulleinspeisung_hauptschalter
state: "on"
actions:
- variables:
target_grid_power: 10
kp: 0.8
min_solar_limit: 30
max_solar_limit: 800
grid_power: "{{ states('sensor.bitshake_aktueller_verbrauch') | float(0) }}"
current_solar_limit: "{{ states('number.solar_maximale_leistung') | float(0) }}"
error_value: "{{ grid_power - target_grid_power }}"
adjustment: "{{ error_value * kp }}"
new_solar_limit_calculated: "{{ current_solar_limit + adjustment }}"
new_solar_limit_clamped: >-
{{ [[new_solar_limit_calculated, max_solar_limit] | min,
min_solar_limit] | max }}
new_solar_limit_final: "{{ new_solar_limit_clamped | round(0) }}"
current_solar_limit_rounded: "{{ current_solar_limit | round(0) }}"
- condition: template
value_template: "{{ (new_solar_limit_final - current_solar_limit_rounded) | abs >= 1 }}"
- target:
entity_id: number.solar_maximale_leistung
data:
value: "{{ new_solar_limit_final }}"
action: number.set_value
mode: single