Forum KNX francophone / English KNX forum

Version complète : Comment changer d'icone en fonction de l'état
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
J'ai essayé toutes les aides que j'ai trouvées simples mais refus de configuration:

Changer d'icone en fonction de l'état

Changer en fonction d'un capteur

J'ai pour la porte dans le fichier homeassistant/knxfiles/binary_sensor.yaml tous mes binary_sensors knx.

Code :
knx:  

###########################
# BINARY_SENSOR
###########################

..........
     
 # GARAGE
 # Etat Porte Garage
   - name: "Porte Garage"
     state_address: "3/1/21"

etc....

et donc voir image jointe.


Si je veux implémenter ceci:

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

Où dois-je placer ce code qui me semble très simple?
Dans le configuration.yaml où ?

Voici mon fichier:

Code :
homeassistant:

# KNX IP Interface ABB IP Router IPR/S
 packages: !include_dir_named knxfiles
 
# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
 themes: !include_dir_merge_named themes

automation: !include automations.yaml
#script: !include scripts.yaml
#scene: !include scenes.yaml
#template: !include templates.yaml

# Special variables
input_select:
 choucroute:
   name: Choucroute
   options:
     - false
     - true
   initial: false
 noel:
   name: Noël
   options:
     - false
     - true
   initial: false    
   
# History_stats
sensor:
 - platform: history_stats
   name: PAC_on_today
   unique_id: pac_on_today
   entity_id: binary_sensor.pac_tourne
   state: "on"
   type: count
   start: "{{ now().replace(hour=0, minute=0, second=0) }}"
   end: "{{ now() }}"  
 - platform: history_stats  
   name: PAC time today
   unique_id: pac_time_today
   entity_id: binary_sensor.pac_tourne
   state: "on"
   type: time
   start: "{{ now().replace(hour=0, minute=0, second=0) }}"
   end: "{{ now() }}"
 - platform: history_stats  
   name: PAC time month
   unique_id: pac_time_month
   entity_id: binary_sensor.pac_tourne
   state: "on"
   type: time  
   start: "{{ now().replace(day=1, hour=0, minute=0, second=0, microsecond=0 ) }}"    
   end: "{{ now() }}"

# Min/Max    
 - platform: statistics
   name: "Moyenne SAM"
   unique_id: moyenne_sam
   entity_id: sensor.sam
   state_characteristic: mean
   max_age:
     hours: 24


#EOF


Merci pour votre aide.
Comme ça plutôt, directement dans le yaml lovelace

- type: custom:button-card
entity: switch.toto
state:
- value: 'on'
icon: mdi:toniconepouron
- value: 'off'
icon: mdi:toniconpouroff
(28/08/2024, 17:14:36)XeNo a écrit : [ -> ]Comme ça plutôt, directement dans le yaml lovelace

         - type: custom:button-card
           entity: switch.toto
           state:
             - value: 'on'
               icon: mdi:toniconepouron
             - value: 'off'
               icon: mdi:toniconpouroff
Ives a donné une réponse à ce sujet dans un autre post:
Meme s'il utilises des entity image et non des icones
(28/08/2024, 15:57:29)NicNac a écrit : [ -> ]Où dois-je placer ce code qui me semble très simple?
Dans le configuration.yaml où ?

Dans un autre fichier sensor.yaml qui aura les templates (non lié au knx)

Tu dois avoir ton sensor_knx.yaml avec ta declaration de capteur par exemple puis un sensor.yaml avec un autre capteur

exemple ici :
sensor_knx.yaml :
- name: Temperature VMC Air Extrait
state_address: '7/0/1'
type: 'temperature'

puis sensor.yaml
- platform: template
sensors:
vmc_df_calcult:
friendly_name: "calcul VMC DF"
unit_of_measurement: "%"
value_template: "{{((((((states.sensor.temperature_vmc_air_extrait.state) | float) )) *100) | round (2))}}"
S'il n'est utiliser que dans une card, je mets ce code dans une card:

Code :
type: custom:button-card
show_entity_picture: true
state:
 - value: 'on'
   entity_picture: /local/Images Maison/cascade_on.jpg
 - value: 'off'
   entity_picture: /local/Images Maison/cascade_off_2.jpg
entity: switch.moteur_debordement_piscine
name: Débordement<br/>Piscine
(28/08/2024, 17:14:36)XeNo a écrit : [ -> ]Comme ça plutôt, directement dans le yaml lovelace

         - type: custom:button-card
           entity: switch.toto
           state:
             - value: 'on'
               icon: mdi:toniconepouron
             - value: 'off'
               icon: mdi:toniconpouroff

Doit-on nécessairement utiliser un type: custom:button-card ?

voici ma carte actuelle en yaml mais cela ne fonctionne pas.
Code :
type: entities
entities:
 - entity: sensor.garage
 - entity: light.garage
 - entity: binary_sensor.porte_garage
   state:
     - value: 'on'
       icon: mdi:garage-lock
     - value: 'off'
       icon: mdi:garage-open
title: Garage
Une solution qui fonctionne :

[attachment=2696]

type: custom:button-card
state:
 - value: 'on'
   color: yellow
   icon: mdi:garage-lock
 - value: 'off'
   color: null
tap_action:
 action: toggle
entity: ton entity
icon: mdi:garage-open
Merci Ives, je viens de comprendre que je dois utiliser "CUSTOM:button-card" et non la "button-card" présentée au départ.
De puis, c'est OK.