Restladezeit und Restentladezeit berechnen

Habe es selbst hin bekommen.
Danke, falls sich jemand damit beschäftigt hat.

Im Grunde war es nur ein Vorzeichen Fehler, aber ich habe den Code auch gleich etwas leserlicher gemacht.

Falls es Interessiert, hier der funktionierende Code:

  # ------- Berechnung Restlade und Entladezeit begin -------
  - platform: template
    sensors:
      speicher_lade_entlade_zeit:
        friendly_name: "Speicher Restlade/Entlade Zeit"
        value_template: >
          {% set battery_level = states('sensor.battery_level') | float %}
          {% set battery_current = states('sensor.battery_current') | float %}
          {% set battery_voltage = states('sensor.battery_voltage') | float %}
          {% set charging_power = states('sensor.battery_charging_power') | float %}
          {% set discharging_power = states('sensor.battery_discharging_power') | float %}
          {% set k = 1.30 %}
      
          {% if battery_level is none or battery_current is none or battery_voltage is none %}
            {% set message = 'Keine Daten verfügbar' %}
          {% elif battery_level != 0 and battery_current != 0 and battery_voltage != 0 %}
            {% set battery_capacity_coulomb = ((12.8 * 1000) / battery_voltage) * 3600 %}  {# Kapazität in Coulomb basierend auf 12.8 kWh und der Batteriespannung #}
            {% if charging_power > 0 %}
              {% set remaining_capacity_coulomb = battery_capacity_coulomb * (1 - battery_level / 100) %}
            {% elif discharging_power > 0 %}
              {% set remaining_capacity_coulomb = battery_capacity_coulomb * (battery_level / 100) %}
            {% endif %}
            {% set t_seconds = (remaining_capacity_coulomb / battery_current) * k %}
        
            {% set total_minutes = (t_seconds / 60) | round(0) %}
            {% set hours = total_minutes // 60 %}
           {% set minutes = total_minutes % 60 %}
        
            {% if charging_power > 0 %}
              {% set message = '%02d:%02d Stunden (Laden)' | format(hours, minutes) %}
            {% elif discharging_power > 0 %}
              {% set message = '%02d:%02d Stunden (Entladen)' | format(hours, minutes) %}
            {% else %}
              {% set message = '%02d:%02d Stunden (Neutral)' | format(hours, minutes) %}
            {% endif %}
          {% else %}
            {% set message = 'Ladung erhalten' %}
          {% endif %}
      
          {{ message }}
  # ------- Berechnung Restlade und Entladezeit end -------

Danke,
Gruß
Tom

Und so kann das dann aussehen:

image

1 „Gefällt mir“