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.
 
Moin,
Ich weiß nicht, was ich falsch mache. Warum bekomme ich eine Fehlermeldung? Wie kann ich condition in dem Template richtig parametrieren?
Ich habe auf der Home Assisten Seite nachgeschaut

HA_ConditionTemplate.png

Code kopiert und bei mir eingefügt

YAML:
- trigger:
  - trigger: state
    entity_id:
      - input_number.in_strom_l1
  condition:
    - condition: template
      value_template: "{{ states('sensor.inverter_pv_power') }}"
  sensor:
      - name: Outside Temperature last known value
        state: "{{ states('sensor.inverter_pv_power') }}"

und erhalte die Fehlermeldung. Warum condition ist nicht erlaubt?

HA_ConditionFehler.png
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
6.638
Beiträge
63.669
Mitglieder
6.890
Neuestes Mitglied
cöuzt
Zurück
Oben