Witam, próbuję stworzyć szablon na odczyt temperatury z czujnika RF. Nie mam w tym doświadczenia, więc proszę o pomoc.
Mam zrobiony sensor rf_temperatura, który przez MQTT z bramki RF pobiera temperaturę jako 3-cyfrowy szesnastkowy kod, i to działa. Próbuję zrobić szablon przeliczający go na temperaturę w stopniach.
Stworzyłem szablon roboczo w narzędziach deweloperskich, który działa tak jak trzeba i podaje odpowiednią temperaturę:
{% set temp = states('sensor.rf_temperatura') -%}
{% set temp = temp |int(base=16) -%}
{% if temp > 2000 -%}
{% set temp = 4096 - temp -%}
{% set temp = temp /-10 -%}
{% else %}
{% set temp = temp /10 -%}
{% endif %}
temperatura: {{ temp }}
W configuration.yaml wstawiłem więc taki zapis, który jednak nie działa:
template:
- sensor:
- name: "Temperatura zewn"
unit_of_measurement: "°C"
icon: mdi:thermometer
state: >
{% set temp = states('sensor.rf_temperatura') -%}
{% set temp = temp |int(base=16) -%}
{% if temp > 2000 -%}
{% set temp = 4096 - temp -%}
{% set temp = temp /-10 -%}
{% else %}
{% set temp = temp /10 -%}
{% endif %}
Encja [sensor.temperatura_zewn] nie przyjmuje żadnego stanu. Co robię źle?
Uwaga temat z przykładem sensora troszkę się zdeaktualizował, bo jest nowy zapis dla platformy mqtt.
Zobacz i zmień zgodnie z nową konfiguracją dla tego sensora w kategorii mqtt.
Innymi słowy zamień u siebie template na mqtt i powinno być OK.
Ale sensor platformy mqtt działa ok, i przyjmuje odpowiednie wartości, np. FDF lub 0AF. Jest zrobiony wg nowych zasad, i to nie on stanowi problem. W narzędziach deweloperskich taki zapis jak wyżej podaje właściwe wartości.
Coś nie tak jest ze składnią w sekcji template, poprzedni zapis nie uwzględniający temperatur ujemnych działał:
Jeszcze raz żeby była jasność: mam sensor w sekcji mqtt: rf_temperatura który działa bez problemu (ale podaje wrtości szesnastkowe i koduje temperatury ujemne) , i sensor w sekcji template: temperatura_zewn z którym mam problem.
Po prostu nie wiem jak zapis szablonu działający w ‘narzędziach deweloperskich’ przenieść z odpowiednią składnią do pliku configuration.yaml.
Edit:
Już doszedłem, na końcu brakowało wpisu: {{ temp }}