Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Comment changer d'icone en fonction de l'état
#1
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.


Pièces jointes Miniature(s)
   
KNX aficionado

Répondre
#2
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
Répondre
#3
(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
Répondre
#4
(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))}}"
Répondre
#5
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
Répondre
#6
(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
KNX aficionado

Répondre
#7
Une solution qui fonctionne :

   

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
Répondre
#8
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.
KNX aficionado

Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet :