Problème avec la création/utilisation d'un template sensor

Bonjour à tous,

j’essaye de me créer une entité pour la gestion de la couleur de ma LED d’escalier.

Mon but :c’est qu’a chaque appel (capteur de présence par la suite), il change la couleur

J’ai fait un premier test concluant avec le mode dev :

 {% set numerocouleur = 4 %}
{% set ListCouleur = ( '#ff0000', '#ff00ff', '#0000ff', '#00ffff','#00ff00', '#ffff00' ) %}
{% set  couleurencours = ListCouleur[numerocouleur] %}
{{ couleurencours }} 

J’ai donc le résultat suivant :

J’ai donc essayé de l’appliquer à une entité perso :

template:
  - sensor:
      - name: "Gestion Couleur escalier"
        unique_id : GestionCouleurEscalier
        state: "{{ state_attr('GestionCouleurEscalier', 'couleurencours') }}" 
        attributes :
          numerodecouleur: 1
          listcouleur: ( '#ff0000', '#ff00ff', '#0000ff', '#00ffff','#00ff00', '#ffff00' )
          couleurencours: listcouleur[numerodecouleur]

j’ai le résultat suivant :

 Inconnu

1ère question :

  • j’ai essayé de tester mes attributs dans le mode dev. mais je n’y arrive.
    Il ne reconnait pas mon entité.
    Dans mon Dashboard, je n’arrive pas à les afficher non plus (j’arrive que le state)
    (j’ai testé avec state_attr(« GestionCouleurEscalier »,« numerodecouleur » sans succès)
    Comment puis je tester que les valeurs des attributs sont les bonnes ?

  • question 2
    est ce la bonne méthode ?

merci d’avance
Olivier

Salut,

je ne suis pas certain que la gestion des attributs marche comme ça.

Une autre méthode pour ce que tu veux faire, c’est le type d’entrée « input_select » qui en gros fournit tout ce qu’il faut pour ce que tu veux faire. Je l’avais expliqué dans ce topic:

1 « J'aime »

Merci, je vais étudier ça :slightly_smiling_face:

je débute. je tâtonne pas mal.

Hello,

j’ai testé un input_select .
c’est vrai que c’est bien plus pratique .



input_select:
  list_couleur_escalier:
    name: Liste des couleurs du bandeau
    options:
      - '#ff0000'
      - '#ff00ff'
      - '#0000ff'
      - '#00ffff'
      - '#ffff00'
    initial: '#ff0000'
    icon: mdi:palette-outline


J’ai donc un script pour passer à la couleur suivant :

alias: Next Couleur
sequence:
  - service: input_select.select_next
    data: {}
    target:
      entity_id: input_select.list_couleur_escalier
icon: mdi:palette
mode: single

Par contre, je suis embêté pour exploiter les couleurs .
J’ai vu qu’il fallait utiliser le RGB .

Du coup, j’ai essayé de décomposer mon hexa
je suis tombé sur ce site :

.
J’ai vu qu’on pouvait utiliser le [:] pour faire un substring

J’arrive à l’appliquer en mode DEv .
Mais je n’arrive pas l’utiliser dans mon automation.

J’ai tenté de faire ça :

action:
  - service: light.turn_on
    data:
      rgb_color: >-
        input_select.list_couleur_escalier[1:3] | int(base=16),
        input_select.list_couleur_escalier[3:5] | int(base=16),
        input_select.list_couleur_escalier[5:7] | int(base=16)
    target:
      device_id: fa132ce2280b3a24616259d5ff232594
  - delay:
      hours: 0
      minutes: 3
      seconds: 0
      milliseconds: 0

il me fait cette erreur quand l’automation se lance :


Triggered by the state of binary_sensor.presence_entree_occupancy at 26 février 2023 à 19:35:27
Lumière: Turn on Led
Stopped because an error was encountered at 26 février 2023 à 19:35:27 (runtime: 0.03 seconds)

None for dictionary value @ data['rgb_color']

une idée ? :slight_smile:

Salut.

En fait là ça ne va pas :slight_smile:
J’ai un exemple de correction ci-dessous.
Mais avant tout de même il y a une version plus facile, c’est d’utiliser « color_name » au lieue de « rgb_color »…
Comme ça dans ta liste tu met du basique, si ton besoin est basique exemple:
image

Et si tu veux de la couleur plus avancée, tu peux regarder le service light.turn_on tu as dans la version UI toute une liste déroulant de couleurs plus pointues que blue et green.

Pour ton utilisation de RGB: Tu utilises partiellement du script jinja2 mais tu ne l’entoures pas des balises template. Et tu donnes juste le nom de l’entité, alors que ça devrait être une truc du style
« states.entite.state »

Du coup ca devrait plutôt ressembler à quelque choses comme ça:

{{  
states.input_select.list_couleur_escalier.state[1:3] | int(base=16) , 
states.input_select.list_couleur_escalier.state[3:5] | int(base=16) , 
states.input_select.list_couleur_escalier.state[5:7] | int(base=16) 

}}

ah merci !!

c’est vrai que je n’avais pas vu le color_name . c’est beaucoup plus simple et parlant !!

Au moins, cela m’auras permis de voir de nouvelles notions.

j’ai encore un peu de mal . c’est noté pour le state.
je teste tout ça .