Sensor oder Temporäres Hilfsmittel als ARRAY definieren

amiko

Active member
Moin,

wie kann ich einen Sensor oder ein Helfer als Array definieren, um die Werte z.B. von der Wallbox oder der PV-Produktion dort zu speichern?
Vielleicht ein zweidimensionales ARRAY mit Monat und Tag?
Hier zum Beispiel speichere ich in einem Sensor die Menge, die ich in das Auto geladen habe. Über die Variable t_day weiß ich welcher Tag heute ist, diese Variable möchte ich als ARRAY Index verwenden.

YAML:
- trigger:
    - trigger: time
      at: "23:59"
  sensor:
    - name: wallbox kwh tag
      unique_id: "wallbox_kwh_tag"
      state_class: "measurement"
      unit_of_measurement: "kWh"  
      state:  >
      {% set t_day = now().day  %}
      {{ states("sensor.kwh_total") |float(0) - states("sensor.wallbox_ladevorgang_startwert") |float(0) }}


oder man kann die action: input_number.set_value genutzt werden

YAML:
  action:
    - action: input_number.set_value
      data_template:
        entity_id: input_number.wallbox_kwh_tag(t_datum)
        value: '{{ states("sensor.kwh_total") |float(0) - states("sensor.wallbox_ladevorgang_startwert") |float(0)}}'
 
Zuletzt bearbeitet:
Moin,
ich habe das mit dem ARRAY hinbekommen, falls es jemanden interessiert, hier ist der Code

YAML:
- trigger:
  - trigger: time
    at: "21:45"
  sensor:
    - name: Heidelberg Wallbox
      unique_id: "heidelberg_wallbox"
      state: "{{ now().timestamp() | timestamp_custom() }}"
      attributes:
          kwh_tag: >
            {% set t_day = now().day %}
            {% set t_leistung = (states("sensor.kwh_total") |float(0) - states("sensor.wallbox_ladevorgang_startwert") |float(0)) | round(3)  %}
            {% set current = this.attributes.get('kwh_tag', []) %}
            {% set new = [{
              "Energie": t_leistung,
              "Datum": now().isoformat() }] %}
            {{ (new + current)[:t_day] }}

Aber da ist noch eine Kleinigkeit, die ich nicht gelöst bekomme.
Die Funktion: now().isoformat() gibt Datum und Uhrzeit zurück, ich will aber nur das Datum.
now().date, now().strftime('%d.%m.%Y') oder now().isoformat('%d.%m.%Y') liefern eine Fehlermeldung.
 
Ich habe noch eine Frage: Wie kann ich an den grün markierten Stellen einen Text "kWh" einfügen?

Zustand_HWB.png

Ich habe es so probiert: "Energie": t_leistung "kWh",
Hat leider nicht funktioniert
 
Zumindest bei dem initialen set könntest Du es einfach anhängen: ~ ' kWh' - da es hier um float und string geht ist eine Verbindung mittels Pluszeichen nicht möglich, aber Tilde funktioniert. Vermutlich kannst Du es aber auch an der Stelle anhängen wo Du es schon probiert hast, eben mit der Tilde zusätzlich dazwischen.
 
Ich habe jetzt ausprobiert, es Sieht erst nicht schlecht aus.

DashboardEnergieWallbox.png

Aber was ist nicht erfasster Verbrauch? Und vor allem: Wie kann der Verbrauch der Wallbox negativ werden? Die Wallbox ist ja keine Photovoltaikanlage und kann keine Energie vom Auto ins Hausnetz einspeisen. Es gibt Wallboxen, die das können, aber mir ist nicht bewusst, dass meine Wallbox das auch kann.
 
Zuletzt bearbeitet:
Ich denke, nicht erfasst ist der Rest neben der Wallbox. Zu Energie gibt es hier sicher reichlichThemen, oder schau in die Doku.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.634
Beiträge
63.633
Mitglieder
6.884
Neuestes Mitglied
karli_08
Zurück
Oben