Licznik dzialajacych glowic termostatycznych

Cześć.
Potrzebuje stworzyć licznik ile głowic w domu grzeje. Wymagania to: stan climate.heat ma być “heat” oraz atrybut climate current_heating_setpoint >= 21.5 w przypadku jednego typu głowic oraz occupied_heating_setpoint >= 21.5 dla drugie typu głowic.
Stworzyłem poniższy sensor i alarmuje mi błędem:

TypeError: ‘>=’ not supported between instances of ‘NoneType’ and ‘float’

Kod sensora:
({% set lookfor = [ ‘climate.ula_heat’, ‘climate.adam_heat’, ‘climate.sypialnia_heat’ ] %}
{% set ns = namespace(count=0) %}
{% for s in states.climate %}
{% if s.entity_id in lookfor and s.state == ‘heat’
and state_attr(s.entity_id, “current_heating_setpoint”) >= 21.5
or state_attr(s.entity_id, “occupied_heating_setpoint”) >= 21.5
%}
{% set ns.count = ns.count + 1 %}
{% endif %}
{% endfor %}
{{ ns.count }})

Co jest nie tak w tym

Do poprawy zgodnie z Jak prawidłowo zamieszczać YAML, inny kod lub logi w postach na forum, dajesz jakiś fragment kodu sensora a nikt z nas nie ma gwarancji, że pozostała część definicji encji jest prawidłowa.

Próbujesz umieścić wszystkie warunki w jednym “ifie”.

Spróbuj w ten sposób:
Teraz rozbite na dwa osobne warunki, sprawdzające czy stan jest “heat”, a następnie sprawdzające wartość atrybutu dla odpowiedniego przypadku.

{% set lookfor = ['climate.ula_heat', 'climate.adam_heat', 'climate.sypialnia_heat'] %}
{% set ns = namespace(count=0) %}
{% for s in states.climate %}
    {% if s.entity_id in lookfor and s.state == 'heat' %}
        {% if state_attr(s.entity_id, 'current_heating_setpoint') is defined and state_attr(s.entity_id, 'current_heating_setpoint') >= 21.5 %}
            {% set ns.count = ns.count + 1 %}
        {% elif state_attr(s.entity_id, 'occupied_heating_setpoint') is defined and state_attr(s.entity_id, 'occupied_heating_setpoint') >= 21.5 %}
            {% set ns.count = ns.count + 1 %}
        {% endif %}
    {% endif %}
{% endfor %}
{{ ns.count }}