PV Batterie SOC Status letztes mal 100% anzeigen

Hallo Gemeinde, ich bekomme es einfach nicht hin. Sehe das Problem nicht. Ich möchte mir das Datum bzw die Tage anzeigen die vergangen sind seit dem letzten Mal 100% SOC. Die Karte dazu habe ich und aber die Werte werden nicht angezeigt. Ich habe in meiner template_sensors.yaml diese Sensoren erstellt . # Template-Sensoren für Batterie 100% SOC Statistik

 # Tage seit letztem 100% SOC Batterie 1
  - name: "Tage seit letztem 100% SOC Batterie 1"
    unique_id: tage_seit_letztem_100_soc_batterie_1
    unit_of_measurement: "Tage"
    state: >
      {% set last = states('input_datetime.letztes_mal_100_soc_batterie_1') %}
      {% if last not in ['unknown','unavailable',''] %}
        {{ ((now() - strptime(last, "%Y-%m-%d %H:%M:%S")).total_seconds() / 86400) | round(1) }}
      {% else %}
        -1
      {% endif %}
# Tage seit letztem 100% SOC Batterie 2
  - name: "Tage seit letztem 100% SOC Batterie 2"
    unique_id: tage_seit_letztem_100_soc_batterie_2
    unit_of_measurement: "Tage"
    state: >
      {% set last = states('input_datetime.letztes_mal_100_soc_batterie_2') %}
      {% if last not in ['unknown','unavailable',''] %}
        {{ ((now() - strptime(last, "%Y-%m-%d %H:%M:%S")).total_seconds() / 86400) | round(1) }}
      {% else %}
        -1
      {% endif %}

die beiden Helfer hier : # input_datetime.yaml
letztes_mal_100_soc_batterie_1:
name: Letztes Mal 100% SOC Batterie 1
has_date: true
has_time: true

letztes_mal_100_soc_batterie_2:
name: Letztes Mal 100% SOC Batterie 2
has_date: true
has_time: true

Diese ist /wird über include in meiner Configuration.yaml geladen. Aber irgendwo bin ich wohl falsch abgebogen ?

EDIT by Jay: Code bitte immer über die Codefunktion „</>“ im Editor hinzufügen.

Hi, versuche es mal so. Ist immer besser mit timestamp statt datetime zu arbeiten. Habe jedenfalls so die Erfahrung bisher gemacht.

state: >
    {% set last_timestamp = state_attr('input_datetime.letztes_mal_100_soc_batterie_1', 'timestamp') %}
    {% if last_timestamp is not none %}
      {{ ((as_timestamp(now()) - last_timestamp) / 86400) | round(1) }}
    {% else %}
      -1
    {% endif %}

In den Entwicklertools kannst du deine Templates auch vorab testen, falls du das noch nicht wusstest.

1 „Gefällt mir“

@TomTom und klappt das so wie ich geschrieben hatte?

Danke für die Nachfrage ja ich kann die Werte zu mindestens mal manuell setzen und sie werden angezeigt. Jetzt jetzt muss ich nur noch irgendwie eine Automation hinbekommen die sobald der 99,9 % Wert überschritten wird, wie das aktuelle Datum reinschreibt

Da bin ich schon dran, hab aber bisher immer irgendeinen Formatfehler bekommen (Legacy)

1 „Gefällt mir“