Wert unbekannt, dann bitte 0

Sicherlich ein bekanntes Problem, aber ich finde die Lösung nicht.

Ich habe einen Deye MicroWR, der natürlich nachts offline ist, somit keine Werte. Die aktuellen Werte kommen auch nur in Watt, aller gut 5 min. Da half mir der Helfer auch nicht, daher in der YAML:

  - sensor:
    # Schuppen in kW
      - name: "Schuppen in kW akt"
        unique_id: "Schuppen_akt_kW"
        unit_of_measurement: 'kW'
        device_class: "energy"
        state_class: "total_increasing"
        state: "{{ states('sensor.solarman_total_ac_output_power_active')|float / 1000 }}"    

Somit habe ich die aktuellen Werte in kW am Tag, wenn der WR läuft. Geht er aus, steht nur noch “Unbekannt”. Da es nicht mehr numerisch ist, ist natürlich das Dashboard & Co nicht mehr so fein.

Wie bekomme ich nun einen Sensor hin, der alle obigen Parameter berücksichtigt und wenn offline, als Ausgabe 0 erscheint, bis zum nächsten Start des Geräts?

{{ states('sensor.solarman_total_ac_output_power_active')|float(0) / 1000 }}

Der default wert 0

float(0)

Gruß
Osorkon

1 „Gefällt mir“

Oh man, muss ich mir einrahmen. Danke dir.

Kann man es auch so erweitern, dass bis zur nächsten Produktion nicht die 0 steht, sondern der letzte Stand, bevor “unbekannt” ausgegeben wird?

Geht alles! :grinning:

Kann Dir gerne das Template später zur Verfügung stellen, außer es kommt mir einer zuvor.
Bin grad noch unterwegs.

Gruß
Osorkon

Wäre Klasse. Danke schon mal.

Schaue Dir solange diesen Beitrag an, da ist die Aufgabenstellung denke ich sehr ähnlich.

Gruß
Osorkon

Falls Du Dir die Lösung nicht schon selbst zusammengereimt hast.

Nochmals zum Verständnis.
Der Template Sensor “Schuppen in kW akt” soll den Wert vom (sensor.solarman_total_ac_output_power_active / 1000) ausgeben, solange dieser Verfügbar ist.
Ist der sensor.solarman_total_ac_output_power_active nicht verfügbar. Soll der Letze Wert von Sensor “Schuppen in kW akt” ausgegeben werden, richtig?

In dem Fall folgender Trigger-based Template Sensor:

Als trigger wird der Sensor sensor.solarman_total_ac_output_power_active verwendet. Und nach der Logik wie oben beschrieben der Template Sensor berechnet.

#configuration.yaml
template:
  - trigger:
      - platform: state
        entity_id:
          - sensor.solarman_total_ac_output_power_active
    sensor:
      - name: Schuppen in kW akt
        unique_id: 8bc2d537-af2f-48a4-9f4f-5561d809f2a6
        state: |
          {{ iif(is_state('sensor.solarman_total_ac_output_power_active', 'unavailable'), states('sensor.schuppen_in_kw_akt'), states('sensor.solarman_total_ac_output_power_active') | float(0) / 1000) }}
        state_class: total_increasing
        device_class: energy
        unit_of_measurement: 'kW'

Gruß
Osorkom

Ich kann es erst später testen.

In Ausgangspunkt 1, also aktuelle Produktion, ist der obige mit float 0 okay, wenn unbekannt.

Bei der Zählung für die Tagesproduktion, nennen wir ihn Sensor2, wäre das gut, mit Ausgabe des letzten Standes bis 23:59 und ab 0 Uhr Ausgabe 0, bis erneut Werte kommen.

Bei einem Sensor3, für die gesamte Produktion, wäre der letzte Stand bis zur nächsten Produktion gut.

Danke für die Anregungen!

Wenn man die Werte nicht weiter benötigt, gibt es übrigens auch die Variante, das “Nicht verfügbar” einfach auszublenden mit hide_unavailable: true, zumindest bei multiple-entity-row, wo sonst immer die Formatierung komplett hin ist.

Irgendwie klappt es nicht, bzw. es wird kein Sensor angelegt.

Hatte es dann doch hinbekommen, aber das war mir alles zu träge, Daten aller 5 min. Nun eine Tasmota Steckdose dazwischen. Sieht alles viel freundlicher aus.