Template Sensor soll "0" anstatt "unknown" anzeigen

Moin Leute ,

ich hätte da mal wieder ein Anliegen und hoffe darauf, dass einer von euch behilflich sein könnte…

Folgendes Szenario:
Ich habe eine große PV Anlage und zusätzlich ein BKW am laufen. Beide werden in HA Ausgelesen. Da die große Anlage Nachts auf Standby geht und nicht komplett aus, werden die Werte für die aktuelle Leistung weiter angezeigt. In diesem Fall dann halt “0 W”.

Der BKW Wechselrichter startet nur bei Sonne, andernfalls ist er halt aus. Das hat zur Folge, dass sein Sensor für die aktuelle Leistung dann als “unknown” angezeigt wird.

Da ich für mein Daschboard alle Sensoren addiere wird dann halt Abends in der Ansicht einfach gar nichts bzw “unknown” angezeigt.

image
image

Jetzt wäre es Schön, wenn auch bei diesem Sensor anstatt “unknown” dann halt 0,0 W angezeigt werden würde.

Mein BKW kommuniziert via MQTT mit Home Assistant. Dafür habe ich dann die Sensoren in der config.yaml angelegt. Der entscheidene wäre dann zb dieser hier.

    - name: "Growatt Input Power"
      unique_id: "growatt_input_power"
      unit_of_measurement: "W"
      device_class: "power"
      state_topic: "energy/solar"
      value_template: "{{ value_json.InputPower }}"

Da gibt es doch sicherlich ne Lösung , oder?

Denn geht nicht gibt’s nicht bei Home Assistant :smiley:
Vielen Dank schon mal

Hi,

{% set x = states('value_json.InputPower') %}
{% set output = 0 if x == 'unknown' else x | int | default(0, true) %}
{{ output }}
1 „Gefällt mir“

Moin,

also müsste der Sensor dann so in der yaml aussehen?

    - name: "Growatt Input Power"
      unique_id: "growatt_input_power"
      unit_of_measurement: "W"
      device_class: "power"
      state_topic: "energy/solar"
      value_template: "{% set x = states('value_json.InputPower') %} {% set output = 0 if x == 'unknown' else x | int | default(0, true) %} {{ output }}"

Dankeschön!

Update:

Hey @Alex

leider hat es wohl doch nicht funktioniert. Als der Status “unknown” war stand dann zwar 0 W, aber als das BKW angefangen hat zu produzieren leider auch noch. Habe ich vielleicht etwas falsch angelegt?

Grüße

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

ersetze mal versuchsweise diese Zeile durch

state: "{{states('value_json.InputPower') | float(0)}}"

Ich bin mir nicht ganz sicher aber einen Versuch ist es Wert. Im besten Fall funktioniert beides: Normale Werte und Abfangen unknown und im schlimmsten Fall gar nichts.

Ich habe eine Lösung gefunden.

Das Template war schon richtig, nur durfte ich nicht den angelegten Grundsensor (value.json.InputPower) nehmen sondern musste dann den Umweg über einen Helper nehmen .

Also erst diesen Sensor angelegt.

    - name: "Growatt Input Power"
      unique_id: "growatt_input_power"
      unit_of_measurement: "W"
      device_class: "power"
      state_topic: "energy/solar"
      value_template: "{{ value_json.InputPower }}"

und dann einen Helper mit dem Template, dass dann den Sensor (growatt_input_power) abfragt.

{% set x = states('sensor.growatt_input_power') %}
{% set output = 0 if x == 'unknown' else x | int | default(0, true) %}
{{ output }}

Dann den Helper Sensor für mein Dashboard.

Damit läuft es tadellos!

DANKE trotzdem allen Beteiligten
Schönes Wochenende