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.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.623
Beiträge
63.538
Mitglieder
6.870
Neuestes Mitglied
#lefy
Zurück
Oben