Le problème
Je n’arrive pas à faire changer la couleur de l’icône lorsque j’active switch.
Le switch en question est le suivant :
----- entity_id: switch.switch_1_statico_palma
timer_ciclo_1:
alias: "[IRR] 1° Ciclo irrigazione"
sequence:
#- service: timer.start #da eliminare 25-08-2021
# data_template: #da eliminare 25-08-2021
# entity_id: timer.t_fine_ciclo_1 #da eliminare 25-08-2021
# duration: "{{ states('sensor.secondi_ciclo_1') }}" #da eliminare 25-08-2021
- service: counter.configure
data_template:
entity_id: counter.contatore_cicli_irrigazione
value: "{{ states('counter.contatore_cicli_irrigazione')|int + 1 }}" #conta i cicli di irrigazione fatti
- choose:
- conditions: >
{{ states.input_number.irr_zona_1_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_1_statico_palma
- delay: '00:00:{{ states.input_number.irr_zona_1_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_1_statico_palma
- delay: '00:00:02'
- choose:
- conditions: >
{{ states.input_number.irr_zona_2_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_2_statico_casetta
- delay: '00:00:{{ states.input_number.irr_zona_2_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_2_statico_casetta
- delay: '00:00:02'
Merci à tous pour l’aide …
Partage ta carte Lovelace…
Colorer avec quoi ? Custom-ui ? Button-card ?
Bonjour Clemalex et merci pour la réponse rapide
Le code fait partie d’un script (je n’ai pas pu joindre l’ensemble du package), et ce que je voudrais faire, c’est changer la couleur de l’icône du commutateur switch.switch_1_statico_palma en vert lorsqu’il est en cours d’exécution …
# -----------------------------------------------------------------
# esecuzione primo programma
# -----------------------------------------------------------------
timer_ciclo_1:
alias: "[IRR] 1° Ciclo irrigazione"
sequence:
#- service: timer.start #da eliminare 25-08-2021
# data_template: #da eliminare 25-08-2021
# entity_id: timer.t_fine_ciclo_1 #da eliminare 25-08-2021
# duration: "{{ states('sensor.secondi_ciclo_1') }}" #da eliminare 25-08-2021
- choose:
- conditions: >
{{ states.input_number.irr_zona_1_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_1_statico_palma
- delay: '00:00:{{ states.input_number.irr_zona_1_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_1_statico_palma
- delay: '00:00:02'
- choose:
- conditions: >
{{ states.input_number.irr_zona_2_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_2_statico_casetta
- delay: '00:00:{{ states.input_number.irr_zona_2_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_2_statico_casetta
- delay: '00:00:02'
- choose:
- conditions: >
{{ states.input_number.irr_zona_3_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_3_statico_orto
- delay: '00:00:{{ states.input_number.irr_zona_3_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_3_statico_orto
- delay: '00:00:02'
- choose:
- conditions: >
{{ states.input_number.irr_zona_4_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_4_statico_pini_dx_sx
- delay: '00:00:{{ states.input_number.irr_zona_4_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_4_statico_pini_dx_sx
- delay: '00:00:02'
Je vous mets également le code de la carte, qui fonctionne effectivement même si ce n’est pas simultanément avec l’activité du switch, en pratique elle s’active au bout de 20-30 secondes à partir du moment où le switch est activé, donc j’aimerais changer la couleur de l’icône sur le script qui contrôle les interrupteurs… j’espère que je me suis bien exprimé.
- type: vertical-stack
cards:
- entity: input_number.irr_zona_1_c1
template: light_room_sergio
variables:
room_icon: 'mdi:sprinkler-variant'
light_icon: true #con TRUE non visualizza l'icona in alto a sx
light_name: 1 Statico Palma
var_stato: |
[[[ if ( (states['switch.switch_1_statico_palma'].state == 'off') ) return 'off'; else return 'on'; ]]]
type: 'custom:button-card'
- entity: input_number.irr_zona_2_c1
template: light_room_sergio
variables:
room_icon: 'mdi:sprinkler-variant'
light_icon: true #con TRUE non visualizza l'icona in alto a sx
light_name: 4 Statico casetta
var_stato: |
[[[ if ( (states['switch.switch_2_statico_casetta'].state == 'off') ) return 'off'; else return 'on'; ]]]
type: 'custom:button-card'
- entity: input_number.irr_zona_3_c1
template: light_room_sergio
variables:
room_icon: 'mdi:sprinkler-variant'
light_icon: true #con TRUE non visualizza l'icona in alto a sx
light_name: 5 Statico Orto
var_stato: |
[[[ if ( (states['switch.switch_3_statico_orto'].state == 'off') ) return 'off'; else return 'on'; ]]]
type: 'custom:button-card'
type: horizontal-stack
voici le code du template…
light_center_frame_sergio:
type: 'custom:button-card'
variables:
room_icon: ''
light_name: ''
mode: ''
icon: >
[[[
var ico = (variables.room_icon ? variables.room_icon : entity.attributes.icon);
return (ico ? ico : 'mdi:lightbulb-group');
]]]
name: >
[[[
var nm = (variables.light_name ? variables.light_name : entity.attributes.friendly_name);
return (nm ? nm : 'light');
]]]
tap_action:
action: toggle
hold_action:
action: more-info
color: auto-no-temperature
color_type: icon
styles:
card:
- background-color: 'rgba(0, 0, 0, 0.0)'
- height: '[[[ return (variables.mode == "room")? "58px" : "34px" ]]]'
- width: 450px
- padding: 0px
- border-radius: 0%
- box-shadow: 0px 0px
icon:
- height: 40px
- width: 40px
- align-self: center
- color: >
[[[
if (variables.var_stato === 'on') return 'green';
if (variables.var_stato === 'off') return 'yellow';
else return 'red';
]]]
name:
- font-size: 16px
- align-self: center #end #start
#- font-weight: bold
grid:
#- grid-template-areas: '"i" "n"'
- grid-template-columns: auto
- grid-template-rows: '[[[ return (variables.mode == "room")? "40px 18px" : "34px" ]]]'
Si le switch met trop longtemps a basculé ou à se mettre à jour, il faut passer par un input_boolean.
L’utiliser dans la carte Lovelace , et le mettre à vrai par le script.
La mise à faut également par le script ou alors part la mise à jour du switch
En fait c’est ce que j’aimerais faire, lancer le changement de couleur directement depuis le script qui lance le squitch mais je n’ai pas compris comment faire
En gros, j’essayais de faire quelque chose comme ça …
timer_ciclo_1:
alias: "[IRR] 1° Ciclo irrigazione"
sequence:
#- service: timer.start #da eliminare 25-08-2021
# data_template: #da eliminare 25-08-2021
# entity_id: timer.t_fine_ciclo_1 #da eliminare 25-08-2021
# duration: "{{ states('sensor.secondi_ciclo_1') }}" #da eliminare 25-08-2021
- choose:
- conditions: >
{{ states.input_number.irr_zona_1_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_1_statico_palma
icon:
color: 'green'
- delay: '00:00:{{ states.input_number.irr_zona_1_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_1_statico_palma
- delay: '00:00:02'
Impossible de gérer les couleur dans les scripts.
Passe par un input_boolean et mets le en lieu est place du switch.
aide help aiuto Clemalex
Je ne peux tout simplement pas insérer input_bolean, dans cette séquence … si je retire le switch, le relais ne fonctionne pas
timer_ciclo_1:
alias: "[IRR] 1° Ciclo irrigazione"
sequence:
#- service: timer.start #da eliminare 25-08-2021
# data_template: #da eliminare 25-08-2021
# entity_id: timer.t_fine_ciclo_1 #da eliminare 25-08-2021
# duration: "{{ states('sensor.secondi_ciclo_1') }}" #da eliminare 25-08-2021
- service: counter.configure
data_template:
entity_id: counter.contatore_cicli_irrigazione
value: "{{ states('counter.contatore_cicli_irrigazione')|int + 1 }}" #conta i cicli di irrigazione fatti
- choose:
- conditions: >
{{ states.input_number.irr_zona_1_c1.state | int > 0 }}
sequence:
- service: homeassistant.turn_on
entity_id: switch.switch_1_statico_palma
- delay: '00:00:{{ states.input_number.irr_zona_1_c1.state | int }}'
- service: homeassistant.turn_off
entity_id: switch.switch_1_statico_palma
- delay: '00:00:02'
- choose:
- conditions: >
{{ states.input_number.irr_zona_2_c1.state | int > 0 }}
Dans l’automatisation il faut ajouter :
service: input_boolean.turn_on # et off après le timer
entity_id: input_boolean.Pour_la_coloration_de_la_carte
Et dans la carte l’utiliser