Modifier l'icone d'un switch en fonction d'un binary_sensor

Apparemment avec Customize on peut uniquement modifier en fonction de son propre état alors que là l’icone du switch va dépendre d’un sensor

Oui avec un template ça fonctionne merci mais du coup j’ai 2 switchs pour la même chose

non non je ne parle pas de template sensor mais d’utiliser la fonction customize.

En clair, customize te permet de forcer une propriété d’un capteur, excepté son état.

Donc, tu peux très bien en fonction de l’état de ton capteur, ou d’un ou plusieurs autres capteurs, faire évoluer le nom, l’icone.

image
image

Ici, je change à la fois l’icone avec customize et également la couleur à l’aide de custom-ui

je vais regarder ça, merci beaucoup

Au lieu de passer par un switch, pourquoi pas utiliser un Template Cover
J’ai fait cela pour mon portail avec un capteur unique de position fermé
J’utilise le cover en mode toogle sur lovelace

Non pas du tout, va voir le lien que j’ai mis plus haut pour avoir des exemples mais customize te permet de modifier en fonction de l’état de n’importe quel capteur.

Avec le code ci-dessous, le nom et l’icone changent suivant l’état d’un capteur :
Si la porte de garage est ouverte, alors le nom est « Fermer le garage » et son icone est une porte de garage ouverte et inversement si la porte est fermée.

customize:
  sensor.porte_du_garage:
    templates:
      friendly_name: if (entities['binary_sensor.door_window_sensor_158XXX'].state
        === 'off') return 'Ouvrir le garage'; if (entities['binary_sensor.door_window_sensor_158XXX'].state
        === 'on') return 'Fermer le garage';
      icon: if (entities['binary_sensor.door_window_sensor_158XXX'].state ===
        'off') return 'mdi:garage'; if (entities['binary_sensor.door_window_sensor_158XXX'].state
        === 'on') return 'mdi:garage-open';

Alors, déjà un gros merci Clemax, je ne savais pas que custom UI avait été mis à jour, j’ai retrouvé mes couleurs :smiley:

Par contre dans customize.yaml j’ai fait ça :

switch.porte_de_garage_switch:
  templates:
    icon: if (entities['binary_sensor.garage_etat'].state === false) return 'mdi:garage-open';
      if (entities['binary_sensor.garage_etat'].state === true) return 'mdi:garage-open';

mais ça ne marche pas, j’ai essayé avec off et on à la place de false et true, même résultat

Je te confirme qu’il faut utiliser on/off au lieu de true/false sinon cela ne marchera pas.

Lorsque je copie ton code et change le binary_sensor par un des miens cela fonctionne (en ayant remplacé true/false par on/off):

switch.porte_de_garage_switch:
  templates:
    icon: if (entities['binary_sensor.garage_etat'].state === 'off') return 'mdi:garage-open';
      if (entities['binary_sensor.garage_etat'].state === 'on') return 'mdi:garage-open';

Je pense que ta configuration n’est pas rechargée.

Si tu veux vérifier, ajout un return mdi:home à la fin et recharge la configuration :

switch.porte_de_garage_switch:
  templates:
    icon: if (entities['binary_sensor.garage_etat'].state === 'off') return 'mdi:garage-open';
      if (entities['binary_sensor.garage_etat'].state === 'on') return 'mdi:garage-open';
	  return 'mdi:home'

Si ta configuration est bien rechargée, soit l’icone sera une porte de garage ouverte ou fermée, sinon ce sera une maison. Cela permet de savoir si une erreur est dans les conditions ou non.

Au final, tu devrais avoir cela dans l’onglet Outils de développement :


et cela dans ton lovelace :
image

ça marche !

en fiat il lui faut une icone sans condition si non il n’en veut pas.

Merci beaucoup !

Tant mieux !

N’hesite pas mettre un :heart: sur la mise a jour de custom-ui au passage.

Sinon, regarde bien ma dernière image, je n’utilise pas de return sans condition… Du coup si la condition n’est pas remplie, l’icône de base est utilisée.

Je pense vraiment que lors de tes tests, la configuration ne s’était pas correctement rechargée.

pourtant je redémarre HA après chaque modif en allant dans configuration → contrôle du serveur

Effectivement, cela devrait suffire.

Le redémarrage est le moyen le plus sûr effectivement.

Pour customize, tu peux simplement utiliser le service homeassistant.reload_core_config ou bien par le bouton dans Configuration puos Contrôle du serveur et enfin le bouton :

merci, c’est se que j’utilisais au début mais ne voyant pas les modifs je me suis dit que ce n’était pas suffisant

merci pour ton aide encore une fois :smiley:

Pas de problème :wink:

J’écris tout ça pour les autres utilisateurs également qui passeraient par là et qui decouvre le fonctionnement.

1 « J'aime »

Non mais je pense qu’il y a un truc qui chiotte, je me suis dit tien ça serait bien que l’icone soit rouge quand la porte est ouverte

du coup (pour le test je met en rouge quand la porte est fermée)

switch.porte_de_garage_switch:
  templates:
    icon_color: if (entities['binary_sensor.garage_etat'].state === 'off') return '#ff3333';
    icon: if (entities['binary_sensor.garage_etat'].state === 'off') return 'mdi:garage';
      if (entities['binary_sensor.garage_etat'].state === 'on') return 'mdi:garage-open';
      return 'mdi:home';

ça ne marche pas alors que c’est la même chose !

Ajoute quand même un return blue; par exemple pour être sûr que custom-ui fonctionne.

déjà essayé, pas mieux, ça me gonfle sérieusement, je pense que je vais faire une pose, passer une matinée pour changer une icone loooool

Merci beaucoup pour ton aide et désolé pour le chat loool

Peux tu faire un screenshot de ton capteur depuis la page Développement et la poster pour voir les attributs.

Mais ne t’inquiète pas, au début c’est normal moi aussoi 'ai passé du temps… J’ai dû mettre 3 jours dans les premières version de home assistant pour comprendre comment fonctionne customize.yaml

Voila le capteur qui modifie l’icone et la couleur du switch

et voila le switch :