Hilfe Template Helfer (If Then Else)

Hallo Zusammen,

Ich habe vor ein paar Monaten damit begonnen, mein über 12 Jahre altes, und recht komplexes FHEM auf Home Assistant umzuziehen.

Ich habe u.a. 2 Lichtmesser die in verschiede Richtungen ausgerichtet sind. Ziel ist es über den ganzen Tag eine glatte Lichtkurve in einen Sensor zu bekommen, um damit meine CCA Beschattung zu steuern.

Scheinbar bin ich schon nah dran, aber leider klappt es noch nicht so wie es soll.

Bis zum Azimuth 240° soll der Helfer den Beleuchtungswert des Sensors „Süd“ haben und ab 240° den Wert des Sensors „Nord“. Dafür habe ich einen Template Sensor Helfer mit diesem Code erzeugt.

{% if is_number("sensor.sun_solar_azimuth") < 240 -%}
 {{ states("sensor.ts_light_sued_beleuchtungsstarke") | float(0) }}
{%- else -%}
 {{ states("sensor.ts_light_nord_beleuchtungsstarke") | float(0) }}
{%- endif %}

Mit dem Code liest der immer den Wert „Süd“ aus. Wenn ich das „<“ gegen ein „>“ umkehre, leist er komischerweise immer den Wert „Nord“. Ich bin in YAML Sachen noch etwas unsicher und das hier ist sicher nur ein kleiner Syntax Fehler, ich mach aber schon echt lange damit rum und würde mich sehr über einen Tipp freuen.

Hi, ich denke es wird auch hier daran liegen, wie der Sensor zum Anfang interpretiert wird. Der Rest ist eigentlich sehr gut aufgebaut. Du musst aber zum Anfang sicherstellen, dass der Sensor sensor.sun_solar_azimuth auch als Zahl und nicht als String interpretiert wird. Daher muss noch das | float hinten eingefügt werden.

versuche es mal so:

{% set azimuth = states("sensor.sun_solar_azimuth") | float(0) %}
{% if azimuth < 240 %}
  {{ states("sensor.ts_light_sued_beleuchtungsstarke") | float(0) }}
{% else %}
  {{ states("sensor.ts_light_nord_beleuchtungsstarke") | float(0) }}
{% endif %}
2 „Gefällt mir“

is_number("sensor.sun_solar_azimuth") prüft ob der String "sensor.sun_solar_azimuth" eine Zahl ist. das liefert False. False wird oft als 0 interpretiert.
Damit ist is_number("sensor.sun_solar_azimuth") immer < 240.

Insofern lautet die Bedingung:
is_number(states("sensor.sun_solar_azimuth"))

1 „Gefällt mir“

Stimmt natürlich, so ist es noch etwas einfacher. :slight_smile:

1 „Gefällt mir“

Hallo Ihr Beiden, Danke für euer schnelle Hilfe. Bei dem „is_number“ hatte ich dann wohl einen Denkfehler, d.h. die Lösung von Nicknol hat nicht funktioniert. Aber die die Lösung von jayjojayson funktioniert einwandfrei. Prima, jetzt wage ich mich mal an den mächtigen CCA Blueprint. Vielen Dank

1 „Gefällt mir“

Ich nutze den CCA Blueprint in unterschiedlichen Ausformungen für meine 11 Rollladen - bei Fragen einfach fragen :wink: :slight_smile:

Da komme ich gerne drauf zurück. In FHEM hatte ich ASC genutzt, ebenfalls eine sehr mächtige Rollo-Steuerung. Leider kennt CCA nicht die Homematic Threestate Fenstergriff Sensoren. Also open/closed/tilted. Das haben ich aber bereits auch über Template Helfer gelöst. Das Thema wäre aber hier Off Topic, ich würde dann dazu einen neuen Threat aufmachen.

1 „Gefällt mir“