# ============================================ # Battery Charging Optimizer - Dashboard # ============================================ # Füge diese Cards zu deinem Lovelace Dashboard hinzu type: vertical-stack cards: # Status-Übersicht - type: entities title: Batterie-Optimierung Status show_header_toggle: false entities: - entity: input_boolean.battery_optimizer_enabled name: Optimierung aktiviert - entity: input_boolean.battery_optimizer_manual_override name: Manuelle Überschreibung - entity: input_text.battery_optimizer_status name: Status # Manuelle Steuerung (dein bestehendes System) - type: entities title: Manuelle Steuerung show_header_toggle: false entities: - entity: input_boolean.goodwe_manual_control name: Manueller Modus - entity: input_number.charge_power_battery name: Ladeleistung - type: divider - entity: sensor.esssoc name: Batterie SOC - entity: sensor.battery_power name: Batterie Leistung # Konfiguration - type: entities title: Optimierungs-Einstellungen show_header_toggle: false entities: - entity: input_number.battery_capacity_kwh name: Batterie-Kapazität - entity: input_number.battery_optimizer_min_soc name: Min. SOC - entity: input_number.battery_optimizer_max_soc name: Max. SOC - entity: input_number.battery_optimizer_max_charge_power name: Max. Ladeleistung - type: divider - entity: input_number.battery_optimizer_price_threshold name: Preis-Schwellwert - entity: input_number.battery_optimizer_reserve_capacity name: Reserve-Kapazität - entity: input_number.battery_optimizer_pv_threshold name: PV-Schwellwert # Aktionen - type: entities title: Aktionen show_header_toggle: false entities: - type: button name: Plan neu berechnen icon: mdi:refresh tap_action: action: call-service service: pyscript.calculate_charging_schedule - type: button name: Plan jetzt ausführen icon: mdi:play tap_action: action: call-service service: pyscript.execute_charging_schedule # Ladeplan-Tabelle - type: markdown title: Geplante Ladungen (nächste 24h) content: > {% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %} {% if schedule %} {% set charges = schedule | selectattr('action', 'eq', 'charge') | list %} {% if charges | count > 0 %} | Zeit | Leistung | Preis | Grund | |------|----------|-------|-------| {% for charge in charges[:10] %} | {{ charge.datetime[11:16] }} | {{ charge.power_w }}W | {{ charge.price }}ct | {{ charge.reason }} | {% endfor %} {% else %} *Keine Ladungen geplant* {% endif %} {% else %} *Kein Plan vorhanden - bitte neu berechnen* {% endif %} # Statistiken - type: markdown title: Plan-Statistiken content: > {% set attrs = state_attr('pyscript.battery_charging_schedule', 'schedule') %} {% if attrs %} **Letzte Aktualisierung:** {{ state_attr('pyscript.battery_charging_schedule', 'last_update') }} **Anzahl Stunden:** {{ state_attr('pyscript.battery_charging_schedule', 'num_hours') }} **Geplante Ladungen:** {{ state_attr('pyscript.battery_charging_schedule', 'num_charges') }} **Gesamtenergie:** {{ state_attr('pyscript.battery_charging_schedule', 'total_energy_kwh') }} kWh **Durchschnittspreis:** {{ state_attr('pyscript.battery_charging_schedule', 'avg_charge_price') }} ct/kWh **Erste Ladung:** {{ state_attr('pyscript.battery_charging_schedule', 'first_charge_time') }} {% else %} *Keine Statistiken verfügbar* {% endif %}