203 lines
5.8 KiB
YAML
203 lines
5.8 KiB
YAML
# ============================================
|
|
# Battery Charging Optimizer - Konfiguration
|
|
# ============================================
|
|
# Speicherort: /config/packages/battery_optimizer_config.yaml
|
|
# oder in configuration.yaml unter entsprechenden Sektionen
|
|
|
|
# ====================
|
|
# Input Boolean
|
|
# ====================
|
|
input_boolean:
|
|
battery_optimizer_enabled:
|
|
name: "Batterie-Optimierung aktiviert"
|
|
icon: mdi:battery-charging-wireless
|
|
|
|
battery_optimizer_manual_override:
|
|
name: "Manuelle Überschreibung"
|
|
icon: mdi:hand-back-right
|
|
|
|
# ====================
|
|
# Input Number
|
|
# ====================
|
|
input_number:
|
|
# Batterie-Parameter
|
|
battery_capacity_kwh:
|
|
name: "Batterie-Kapazität"
|
|
min: 1
|
|
max: 50
|
|
step: 0.5
|
|
unit_of_measurement: "kWh"
|
|
icon: mdi:battery
|
|
mode: box
|
|
initial: 10
|
|
|
|
battery_optimizer_min_soc:
|
|
name: "Minimaler SOC"
|
|
min: 0
|
|
max: 50
|
|
step: 5
|
|
unit_of_measurement: "%"
|
|
icon: mdi:battery-low
|
|
mode: slider
|
|
initial: 20
|
|
|
|
battery_optimizer_max_soc:
|
|
name: "Maximaler SOC"
|
|
min: 50
|
|
max: 100
|
|
step: 5
|
|
unit_of_measurement: "%"
|
|
icon: mdi:battery-high
|
|
mode: slider
|
|
initial: 100
|
|
|
|
battery_optimizer_max_charge_power:
|
|
name: "Max. Ladeleistung"
|
|
min: 1000
|
|
max: 10000
|
|
step: 500
|
|
unit_of_measurement: "W"
|
|
icon: mdi:lightning-bolt
|
|
mode: box
|
|
initial: 5000
|
|
|
|
# Optimierungs-Parameter
|
|
battery_optimizer_price_threshold:
|
|
name: "Preis-Schwellwert"
|
|
min: 0
|
|
max: 50
|
|
step: 0.5
|
|
unit_of_measurement: "ct/kWh"
|
|
icon: mdi:currency-eur
|
|
mode: box
|
|
initial: 28
|
|
|
|
battery_optimizer_reserve_capacity:
|
|
name: "Reserve-Kapazität (Haushalt)"
|
|
min: 0
|
|
max: 5
|
|
step: 0.5
|
|
unit_of_measurement: "kWh"
|
|
icon: mdi:home-lightning-bolt
|
|
mode: box
|
|
initial: 2
|
|
|
|
battery_optimizer_pv_threshold:
|
|
name: "PV-Schwellwert (keine Ladung)"
|
|
min: 0
|
|
max: 5000
|
|
step: 100
|
|
unit_of_measurement: "Wh"
|
|
icon: mdi:solar-power
|
|
mode: box
|
|
initial: 500
|
|
|
|
# ====================
|
|
# Input Text
|
|
# ====================
|
|
input_text:
|
|
battery_optimizer_status:
|
|
name: "Optimierungs-Status"
|
|
max: 255
|
|
icon: mdi:information-outline
|
|
|
|
# ====================
|
|
# Input Select
|
|
# ====================
|
|
input_select:
|
|
battery_optimizer_strategy:
|
|
name: "Lade-Strategie"
|
|
options:
|
|
- "Konservativ (nur sehr günstig)"
|
|
- "Moderat (unter Durchschnitt)"
|
|
- "Aggressiv (mit Arbitrage)"
|
|
initial: "Konservativ (nur sehr günstig)"
|
|
icon: mdi:strategy
|
|
|
|
# ====================
|
|
# Sensor Templates
|
|
# ====================
|
|
template:
|
|
- sensor:
|
|
# Aktueller Ladeplan-Status
|
|
- name: "Batterie Ladeplan Status"
|
|
unique_id: battery_charging_plan_status
|
|
state: >
|
|
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
|
{% if schedule %}
|
|
{% set num_charges = schedule | selectattr('action', 'eq', 'charge') | list | count %}
|
|
{{ num_charges }} Ladungen geplant
|
|
{% else %}
|
|
Kein Plan
|
|
{% endif %}
|
|
icon: mdi:calendar-clock
|
|
attributes:
|
|
last_update: >
|
|
{{ state_attr('pyscript.battery_charging_schedule', 'last_update') }}
|
|
total_hours: >
|
|
{{ state_attr('pyscript.battery_charging_schedule', 'num_hours') }}
|
|
next_charge: >
|
|
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
|
{% if schedule %}
|
|
{% set charges = schedule | selectattr('action', 'eq', 'charge') | list %}
|
|
{% if charges | count > 0 %}
|
|
{{ charges[0].hour }}:00 Uhr ({{ charges[0].price }} ct/kWh)
|
|
{% else %}
|
|
Keine Ladung geplant
|
|
{% endif %}
|
|
{% else %}
|
|
Kein Plan vorhanden
|
|
{% endif %}
|
|
|
|
# Nächste geplante Aktion
|
|
- name: "Batterie Nächste Aktion"
|
|
unique_id: battery_next_action
|
|
state: >
|
|
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
|
{% if schedule %}
|
|
{% set now_hour = now().hour %}
|
|
{% set future = schedule | selectattr('hour', 'ge', now_hour) | list %}
|
|
{% if future | count > 0 %}
|
|
{{ future[0].hour }}:00 - {{ future[0].action }}
|
|
{% else %}
|
|
Keine weiteren Aktionen heute
|
|
{% endif %}
|
|
{% else %}
|
|
Kein Plan
|
|
{% endif %}
|
|
icon: mdi:clock-outline
|
|
attributes:
|
|
power: >
|
|
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
|
{% if schedule %}
|
|
{% set now_hour = now().hour %}
|
|
{% set future = schedule | selectattr('hour', 'ge', now_hour) | list %}
|
|
{% if future | count > 0 %}
|
|
{{ future[0].power_w }} W
|
|
{% endif %}
|
|
{% endif %}
|
|
price: >
|
|
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
|
{% if schedule %}
|
|
{% set now_hour = now().hour %}
|
|
{% set future = schedule | selectattr('hour', 'ge', now_hour) | list %}
|
|
{% if future | count > 0 %}
|
|
{{ future[0].price }} ct/kWh
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
# Geschätzte Ersparnis
|
|
- name: "Batterie Geschätzte Ersparnis"
|
|
unique_id: battery_estimated_savings
|
|
state: >
|
|
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
|
{% if schedule %}
|
|
{{ state_attr('pyscript.battery_charging_schedule', 'estimated_savings') | float(0) | round(2) }}
|
|
{% else %}
|
|
0
|
|
{% endif %}
|
|
unit_of_measurement: "€"
|
|
device_class: monetary
|
|
icon: mdi:piggy-bank
|
|
|