Tu as la réponse si dessous :
portail_carte:
card:
type: custom:button-card
name: 'Portail :'
label: |
[[[
if (states['input_number.portail_position'].state == '0.0')
return "fermé";
else if (states['input_number.portail_position'].state == '1.0')
return "ouvert";
else if (states['input_number.portail_position'].state == '2.0' && states['input_number.portail_sens'].state == '0.0')
return "ouverture en cours";
else if (states['input_number.portail_position'].state == '2.0' && states['input_number.portail_sens'].state == '1.0')
return "fermeture en cours";
else if (states['input_number.portail_position'].state == '3.0')
return "partiellement ouvert";
]]]
show_label: true
layout: name_label
styles:
grid:
- grid-template-areas: '"n" "l"'
- grid-template-rows: min-content min-content
- grid-template-columns: min-content
name:
- font-size: 1.0em
- font-weight: bold
- padding-left: 140px
- padding-top: 15px
- color: rgba(0,0,0,0.6)
label:
- font-size: 1.1em
- font-weight: bold
- padding-left: 140px
- padding-top: 5px
- align-self: start
- text-align: start
- color: |
[[[
if (states['input_number.portail_position'].state == '0.0')
return 'rgba(64,192,64,1.0)';
else if (states['input_number.portail_position'].state == '1.0')
return 'rgba(255,0,0,1.0)';
else if (states['input_number.portail_position'].state == '2.0')
return 'rgba(255,140,0,1.0)';
else if (states['input_number.portail_position'].state == '3.0')
return 'rgba(255,140,0,1.0)';
]]]
- animation: |
[[[
if (states['input_number.portail_position'].state == '1.0')
return 'blink 2s ease infinite';
else if (states['input_number.portail_position'].state == '2.0')
return 'blink 2s ease infinite';
else if (states['input_number.portail_position'].state == '3.0')
return 'blink 2s ease infinite';
]]]
card:
- background-image: >-
linear-gradient(135deg, rgba(64,64,64,1.0) 0%,
rgba(96,96,96,1.0) 25%, rgba(128,128,128,1.0) 100%)
- border-radius: 10px
- box-shadow: 4px 4px 8px 0px rgba(32,32,32,0.5)
- border: 2px rgba(32,32,32,0.5) outset
- width: 320px
- height: 180px
tap_action:
action: none
hold_action:
action: none
portail_fond:
card:
type: custom:button-card
styles:
card:
- background-color: |
[[[
if (states['input_number.portail_position'].state == '0.0')
return 'rgba(64,192,64,1.0)';
else if (states['input_number.portail_position'].state == '1.0')
return 'rgba(255,0,0,0.5)';
else if (states['input_number.portail_position'].state == '2.0')
return 'rgba(255,140,0,0.5)';
else if (states['input_number.portail_position'].state == '3.0')
return 'rgba(255,140,0,0.5)';
]]]
- box-shadow: |
[[[
if (states['input_number.portail_position'].state == '0.0')
return '0px 0px 5px 5px rgba(64,192,64,1.0)';
else if (states['input_number.portail_position'].state == '1.0')
return '0px 0px 5px 5px rgba(255,0,0,0.5)';
else if (states['input_number.portail_position'].state == '2.0')
return '0px 0px 5px 5px rgba(255,140,0,0.5)';
else if (states['input_number.portail_position'].state == '3.0')
return '0px 0px 5px 5px rgba(255,140,0,0.5)';
]]]
- animation: |
[[[
if (states['input_number.portail_position'].state == '1.0')
return 'blink 2s ease infinite';
else if (states['input_number.portail_position'].state == '2.0')
return 'blink 2s ease infinite';
else if (states['input_number.portail_position'].state == '3.0')
return 'blink 2s ease infinite';
]]]
- border: none
- width: 66px
- height: 66px
- border-radius: 50%
portail_icone:
card:
type: custom:button-card
entity_picture: |
[[[
if (states['input_number.portail_position'].state == '0.0')
return '/local/images/icones/portail_ferme.png';
else if (states['input_number.portail_position'].state == '1.0')
return '/local/images/icones/portail_ouvert.png';
else if (states['input_number.portail_position'].state == '2.0')
return '/local/images/icones/portail_mouvement.png';
else if (states['input_number.portail_position'].state == '3.0')
return '/local/images/icones/portail_mouvement.png';
]]]
show_entity_picture: true
styles:
card:
- background-color: rgba(64,192,64,0.0)
- border: none
- width: 66px
- height: 66px
- border-radius: 50%
entity_picture:
- width: 90%
- opacity: 100%
portail_ouvrir:
card:
type: custom:button-card
show_name: false
styles:
card:
- background-color: rgba(255,255,255,0.0)
- background-image: url(/local/images/icones/portail_ouvrir.png)
- background-size: cover
- box-shadow: 2px 2px 4px 0px rgba(32,32,32,0.5)
- border: 2px rgba(211,211,211,1.0) outset
- border-radius: 50%
- height: 72px
- width: 72px
tap_action:
action: call-service
service: script.allee_du_garage_actionner_portail
portail_fermer:
card:
type: custom:button-card
show_name: false
styles:
card:
- background-color: rgba(255,255,255,0.0)
- background-image: url(/local/images/icones/portail_fermer.png)
- background-size: cover
- box-shadow: 2px 2px 4px 0px rgba(32,32,32,0.5)
- border: 2px rgba(211,211,211,1.0) outset
- border-radius: 50%
- height: 72px
- width: 72px
tap_action:
action: call-service
service: script.allee_du_garage_actionner_portail
Si j’utilise simplement les ‹ on › ou ‹ off › des capteurs d’ouverture, je ne peux pas déterminer le sens de déplacement du portail et il me faut des 'if" et ‹ else if › très, très, très longs…