tOmki
9 Listopad 2024 10:28
1
Mam taki przykładowy szablon.
Chciałbym żeby zmieniała się ikona w zależności od stanu (nie chce binary sensor trigger).
W narzędziach deweloperskich sprawdzam składnię YAML i jest ok.
Odpalam szablony i po wklejeniu kodu wynik dla stanu ikony jest ok. (foto poniżej)
Mam w sumie 3 wersje kodu dla icon_template - wszystkie są poprawne jako kod yaml. (zaznaczone haszami)
Dodałem
- platform: template
sensors:
lodowka:
friendly_name: "Lodowka"
value_template: >-
{% if states('sensor.pp_lodowka_power') != ('unavailable' or 'unknown') %}
{% if states('sensor.pp_lodowka_power') | int > 2 %}
Praca
{% else %}
Wyłączona
{% endif %}
{% else %}
{{ states('sensor.lodowka') }}
{% endif %}
#1 icon_template: >-
#1 {% if is_state('sensor.lodowka','Wyłączona') %} mdi:fridge-off
#1 {% else %} mdi:fridge
#1 {% endif %}
#2 icon_template: "{{ 'mdi:fridge' if is_state('sensor.lodowka', 'Praca') else 'mdi:fridge-off' }}"
#3 icon_template: >-
#3 {% if (states.sensor.lodowka.state) == "Praca" %}
#3 mdi:fridge
#3 {% else %}
#3 mdi:fridge-off
#3 {% endif %}
macek
9 Listopad 2024 10:55
2
Na podstawie dokumentacji Legacy Sensor configuration format :
This format still works but is no longer recommended. Use modern configuration .
może warto zacząć używać nowej definicji template sensor. Wtedy możesz zrobić wg przykładu tak:
icon: >
{% if is_state("binary_sensor.sun_up", "on") %}
mdi:weather-sunset-up
{% else %}
mdi:weather-sunset-down
{% endif %}
Od dawna używam nowego sposobu definiowania sensorów i wg mnie jest mniej problemów, jest też więcej przykładów w internetach np. Add ICON to Template Sensor - #3 by andyblac - Configuration - Home Assistant Community .
Nie pomogłem ale może warto zmienić przyzwyczajenia .
Edit:
Próbujesz ustawić stan ikony encji na podstawie stanu tej encji, który wcześniej zdeniniowałeś (obliczyłeś) w value_template
, nie wiem czy tak można robić “w locie”. W edytorze szablonów to zadziałało bo stan encji sensor.lodowka
jest już określony. Możesz spóbować ustawić stan ikony na podstawie tych samych encji, które wykorzystałeś przy value_template
, wtedy musi zadziałać.
GSzabados
(Gábor Szabados)
9 Listopad 2024 11:00
3
So, what is not working actually?
You are defining a sensor and using it for templating itself? That seems to be a bit odd to me, and I would think that it would not be allowed.
Będzie to działać w przypadku wyświetlania na custom button card jednak przy zwykłych chyba nie da rady w locie nadpisywać.
type: custom:button-card
entity: sensor.lodowka_active_power
show_icon: true
icon: |
[[[
return entity.state > 2 ? 'mdi:power' : 'mdi:power-off';
]]]
Edit.
A żeby to miało ręce i nogi w przypadku lodówki to jeszcze kolor na jasny niebieski gdy mrozi.
type: custom:button-card
entity: sensor.lodowka_active_power
show_icon: true
icon: |
[[[
return entity.state > 2 ? 'mdi:power' : 'mdi:power-off';
]]]
styles:
icon:
- color: >
[[[
return entity.state > 2 ? '#ADD8E6' : 'red';
]]]
2 polubienia