Rechnen und Anzeigen von Sensoren

Moin,
ich möchte 2 Luftfeuchtigkeitssensoren differenzieren in einem neuen Sensor als Differenz erfassen. Im Template Editor als Test kommt der Wert zurück und wird angezeigt!

Also wechsel man dann in den Zustand des Sensors,wird kein Wert ausgegeben:

grafik

Allerdings wenn ich das in die configuration.yaml packe geht es nicht und die Anzeige bleibt leer.

Der neue Sensor gibt aber kein Wert zurück.

Code Beispiel:

-name: “Absolute Luftfeuchtigkeit Unterschied”
unique_id: “AbsoluteHumidityDifference”
unit_of_measurement: “g/m^3”
state_class: “measurement”
state: >
{{ ( float(states(‘sensor.kinderzimmer_benny_absolute_luftfeuchtigkeit’)) - float(states(‘sensor.outdoor_absolute_luftfeuchtigkeit’)) ) | float | round (2) }}

Ich möchte mit dem berechneten neuen Sensor diesen Aufzeichnen und in einer Automation zum Lüften oder Schließen des Fenstern gegen Schimmelbildung nutzen.

Frage: Wo ran liegt das, der Sensor da kein Wert ausgibt? Ich bin da Anfänger was Helfer und Sensoren und deren Berechnung betrifft.

Hi

bei YAML sind die Einrückungen wichtig. Wenn du Code so ohne Code-Tags hier ins Forum postest, dann geht sowas wie einrückungen verloren und die Helfer haben hier keine/eingeschrängt eine Chance festzustellen wo der Fehler liegt.

Ansonsten setz deinen Code doch nochmal in Code Tags (im Fenster das Symbol </> verwenden). Soweit ich sehe waren da beim Kopieren auch einige nicht erlaubte Zeichen dabei.

Ansonsten :slight_smile:

das so im der Configuration.yaml geht nicht. Da fehlt ja mindestens nen template: davor

Eventuell so in der configuration.yaml

template:
  - sensor:
      - name: "Absolute Luftfeuchtigkeit Unterschied"
        unique_id: AbsoluteHumidityDifference
        unit_of_measurement: "g/m3"
        state_class: measurement
        state: >
          {% set kind = states('sensor.kinderzimmer_benny_absolute_luftfeuchtigkeit') | float(0) %}
          {% set aussen = states('sensor.outdoor_absolute_luftfeuchtigkeit') | float(0) %}
          {{ (kind - aussen) | round(2) }}

Besser wäre aber wahrscheinlich, wenn du dir einfach einen Template Helfer anlegst in der GUI und das darüber machst. Das muss doch nicht in die Configuration.yaml

1 „Gefällt mir“

Hi,

du hast im Template Editor - unter Entwicklerwekzeuge - alles eingetragen.
Da bekommst du den Text ausgegeben und den Wert des von dir geforterten Rechnug.

Geh mal unter ‘Einstellungen’, ‘Geräte und Dienste’ und dann oben auf ‘Helfer’.
Dann klickt du ‘Helfer erstellen’ - ‘Template’ - und dann auf ‘Sensor’.

Da gibst du dann den Namen ein und die Klasse und die Einheit.
Im Feld ‘Zustand’ kommt dann dein {{ (float(states …..

Wenn du alles eingetragen hast, sollte ganz unten bei den Eingaben das Ergebnis stehen:
Vorschau … dieser Snsor aboniert….

Danach auf ‘ok’ klicken.

Gruß
Christian

1 „Gefällt mir“

lach … das hab ich heute auch gemacht

Einstellungen → Geräte → Helfer → neuer Helfer → templatesensor

{{ states(‘sensor.humidity1’) | float(0) - states(‘sensor.humidity2’) | float(0) }}

und dann noch den Rest dort einstellen

find ich schöner außerhalb der configuration.yaml und man muss nicht immer neu starten

1 „Gefällt mir“
{% set t = states('sensor.temperature') | float(0) %}
{% set rh = states('sensor.humidity') | float(0) %}
{% set a = 17.625 %}
{% set b = 243.04 %}
{% set gamma = log(rh / 100) + ((a * t) / (b + t)) %}
{{ ((b * gamma) / (a - gamma)) | round(1) }}

Falls du noch taupunkt brauchst

1 „Gefällt mir“

Danke ich teste das mal

Vielen Dank ist auch noch Idee