Bonsoir, je m’adresse à vous ce soir car je n’arrive pas à changer l’icône de mon entité en fonction de la valeur du sensor qui est un pourcentage, j’utilise cette icône pour m’indiquer l’espace qui me reste sur mon volume de NAS dans le menu déroulant.
J’ai essayé avec la condition IF dans le fichier customize.yaml mais cela ne m’affiche pas l’icone.
Voici le code que j’ai essayé :
sensor.sga4nrb9d_volume_1_volume_utilise:
show_last_changed: true
templates:
icon : >-
{% if (state <= '100') %}
'mdi:circle-slice-8'
{% if (state <= '87,5') %}
'mdi:circle-slice-7'
{% if (state <= '75') %}
'mdi:circle-slice-6'
{% if (state <= '62,5') %}
'mdi:circle-slice-5'
{% if (state <= '50') %}
'mdi:circle-slice-4'
{% if (state <= '37,5') %}
'mdi:circle-slice-3'
{% if (state <= '25') %}
'mdi:circle-slice-2'
{% if (state <= '12,5') %}
'mdi:circle-slice-1'
{% if (state == '0') %}
'mdi:circle-outline'
{% endif; %}
icon_color: >-
{% if (state <= '50') %}
'#43ec55'
{% if (state <= '62,5') %}
'#a9f718'
{% if (state <= '75') %}
'#f0f718'
{% if (state <= '87,5') %}
'#df5d28'
{% if (state <= '100') %}
'#df2828'
{% endif; %}
Je vous remercie d’avance pour l’aide, j’espère que je ne fais pas un doublon de post, j’ai déjà regardé le forum je n’ai pas trouvé mon bonheur,
Bonne soirée à vous
Ma configuration
version
core-2023.12.4
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.11.6
os_name
Linux
os_version
6.1.63-haos
arch
x86_64
timezone
Europe/Paris
config_dir
/config
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
4285
Installed Version
1.33.0
Stage
running
Available Repositories
1433
Downloaded Repositories
22
Home Assistant Cloud
logged_in
false
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 11.2
update_channel
stable
supervisor_version
supervisor-2023.12.0
agent_version
1.6.0
docker_version
24.0.7
disk_total
30.8 GB
disk_used
6.9 GB
healthy
true
supported
true
board
ova
supervisor_api
ok
version_api
ok
installed_addons
Matter Server (5.0.2), AdGuard Home (5.0.1), Terminal & SSH (9.8.1), AirCast (4.0.1), Network UPS Tools (0.12.2), Studio Code Server (5.14.2), RPC Shutdown (2.4), Spotify Connect (0.12.6), Glances (0.20.0), Samba share (12.2.0), Mosquitto broker (6.4.0)
Il va te falloir « custom-ui » à installer depuis HACS.
Et ensuite te baser sur la doc :
Bref la template devrait ressembler à ça :
templates: # state is a string
icon: >
if (state === '0.0') return 'mdi:volume-off';
if (state <= '0.3') return 'mdi:volume-low';
if (state <= '0.6') return 'mdi:volume-medium';
return 'mdi:volume-high';
Merci de votre réponse rapide, j’ai déjà installé cette intégration, j’ai essayé le modèle de code que propose la doc mais il ne prend en compte que mes deux premières conditions pas les suivantes.
sensor.sga4nrb9d_volume_1_volume_utilise:
show_last_changed: true
templates:
icon: >
if (state <= '100') return 'mdi:circle-slice-8';
if (state <= '87,5') return 'mdi:circle-slice-7';
if (state <= '75') return 'mdi:circle-slice-6';
if (state <= '62,5') return 'mdi:circle-slice-5';
if (state <= '50') return 'mdi:circle-slice-4';
if (state <= '37,5') return 'mdi:circle-slice-3';
if (state <= '25') return 'mdi:circle-slice-2';
if (state <= '7,5') return 'mdi:circle-slice-1';
return 'mdi:circle-outline';
icon_color: >
if (state <= '100') return '#df2828';
if (state <= '87,5') return '#df5d28';
if (state <= '75') return '#f0f718';
if (state <= '62,5') return '#a9f718';
return '#43ec55';
Excusez-moi de vous dérangez avec ça, je pense que ce n’est pas grand chose qui fausse le code mais je ne comprends pas mon erreur qui ne me permet pas de faire marcher ce petit bout de code
Je viens d’essayer le code que vous m’avez proposé, cela ne prend toujours en compte que les deux premières conditions.
J’ai également essayé de remplacer les virgules par des points, j’ai essayé aussi sans valeurs décimales.
Entre deux, j’ai essayé de remanié le code par rapport à la doc, j’ai réussi à faire fonctionner le code comme je le voulais mais seulement en mettant le signe en supérieur et non en inférieur ou égal, je ne comprends pas pourquoi, cela marche que dans ce sens-là.
Si quelqu’un a une explication, je suis preneurs
sensor.sga4nrb9d_volume_1_volume_utilise:
show_last_changed: true
templates:
icon: >
if (state > 99) return 'mdi:circle-slice-8';
if (state > 84) return 'mdi:circle-slice-7';
if (state > 74) return 'mdi:circle-slice-6';
if (state > 62) return 'mdi:circle-slice-5';
if (state > 50) return 'mdi:circle-slice-4';
if (state > 34) return 'mdi:circle-slice-3';
if (state > 24) return 'mdi:circle-slice-2';
if (state > 12) return 'mdi:circle-slice-1';
return 'mdi:circle-outline';
icon_color: >
if (state > 88) return 'red';
if (state > 75) return 'orange';
if (state > 63) return 'yellow';
return 'green';
En programmation standard, c’est normalement plus simple de borner les valeurs hautes et basses avec « >= » et « < » (valeur comprise entre « x » et « y ») :
if (state == 0)
return ...
else if (state > 0) && (state <= 7.5)
return ...
else if (state > 7.5) && (state <= 25)
return ...
else if (state > 25) && (state <= 37.5)
return ...
...
Effectivement votre code fonctionnement, j’ai du avoir un problème dans ma syntaxe pour que cela ne marche pas.
Je vous remercie de votre aide, cela m’as bien dépanné.
Curieux d’en apprendre plus, d’après le code de @anon41081891 je vois qu’il met une plage de chiffre pour indiquer de quel nombre à quel nombre nous voulons le changement de couleur de l’état, cette méthode est-elle plus pertinente que celle que j’ai annoncé? Le fait d’utilise le state < x est-elle moins apprécié par HA que (state > x) && ( state < x)? Faut t’il mieux donner une plage de donnée?
Sur ton premier post, le code s’arrêtera toujours sur la première ligne. Le fait de borner la plage attendue permet d’éviter à tous les coups ce type d’erreur.
Hello
Je regarde pour changer une icon avec custom-ui.
Le problème c’est que je n’ai pas de template pour mon sensor en question… Il est généré depuis node-red. Donc rien dans mon yaml.
Une solution ?
Custom-ui utilise le système de customisation d’une entité de HA, mais rajoute l’option de Template que ne gère pas HA pour le customize et ajoute le icon_color , que HA ne gère pas pour une entité.
Du coup quelle est la solution la plus propre sur le long terme ?
Utiliser ce plugin ou custom-icon-color via l’ajoutde l’attribut icon_color ?
En gros soit tout est personnalisé dans le customize pour les entités non fournies par HA, soit dans les templates directement le cas échéant.
Sinon ça oblige dans chaque automatisation à modifier en plus l’attribut de couleur, ce qui me parait plus le bordel je pense à terme.
Ton avis ?
Depuis la dernière MAJ de custom-ui, il y a eu du changement.
Maintenant custom-ui n’a que l’option template et color_icon. L’option more-onfo est enlever.
Une nouvelle carte est faite que pour more-info maintenant, c’est custom-more-info.
Sinon ta une carte Custom-icon-color qui n’a pas l’option template et ne permet que l’option icon_color.
Dans un template sensor, tu ne peut pas utiliser icon_color je crois.
Moi, j’ai tout fait par custom-ui pour modifier les icones et les couleur d’icones avec template.