Button-Card: faire apparaitre l'état d'un autre sensor

Bonjour,

J’ai récupéré le code d’une carte button-card avec la fonction « lock » afin de piloter mon portail (idée trouvée sur la présentation de Clemalex).
Je ne trouve pas comment faire pour que l’icone change d’état en fonction d’un autre sensor que celui de l’état de l’actionneur (binary_sensor.portail_etat) :frowning:

type: 'custom:button-card'
entity: switch.portail
name: Portail
aspect_ratio: 1/0.6
lock:
  enabled:
    - - - return entity.state === 'on';
  duration: 2
  unlock: double_tap
icon: 'mdi:gate'
tap_action:
  action: toggle
show_state: false
show_last_changed: true
color: auto
styles:
  card:
    - background-color: black
    - border-radius: 10%
    - filter: opacity(100%)
    - padding: 1%
    - color: auto
    - text-transform: null
    - font-size: px
    - color: white
state:
  - value: 'on'
    styles:
      card:
        - background-color: null
  - value: 'off'
    styles:
      card:
        - background-color: ''
        - filter: opacity(70%)
      icon:
        - color: '#4F4F4F'
      name:
        - color: white

Merci de votre aide.

Ma config

Ma configuration

version: core-2021.3.2
installation_type: Home Assistant OS
dev: false
hassio: true
docker: true
virtualenv: false
python_version: 3.8.7
os_name: Linux
os_version: 5.4.83-v8
arch: aarch64
timezone: Europe/Paris

GitHub API: ok
Github API Calls Remaining: 4923
Installed Version: 1.11.3
Stage: running
Available Repositories: 824
Installed Repositories: 12

logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: ok

host_os: Home Assistant OS 5.12
update_channel: stable
supervisor_version: supervisor-2021.03.6
docker_version: 19.03.13
disk_total: 109.3 GB
disk_used: 12.3 GB
healthy: true
supported: true
board: rpi4-64
supervisor_api: ok
version_api: ok
installed_addons: File editor (5.2.0), ESPHome (1.16.2), Duck DNS (1.12.5), Samba share (9.3.1), Mosquitto broker (5.1.1), deCONZ (6.7.2), Node-RED (8.1.2), Home Assistant Google Drive Backup (0.103.1)

dashboards: 1
resources: 6
views: 4
mode: storage

Quand c’est comme ça, généralement, je mets comme entité mon capteur et c’est l’action qui comprends une autre entité, ce qui permet d’utiliser les

et donc le switch se contrôle par :

tap_action:
  action: call-service
  service: input_boolean.turn_on
  service_data:
    entity_id: input_boolean.garage_command

Mais quand c’est dépendant de plusieurs entités, je ne renseigne pas d’entité pour la carte du tout (j’ai 2 capteurs pour mon garage, un en ouverture et l’autre en fermeture) :

aspect_ratio: 5/2
color_type: card
confirmation:
  text: >
    [[[

    if (states['binary_sensor.garage_ferme'].state ==
    'off') return 'Ouvrir le Garage ?';

    if (states['binary_sensor.garage_ouvert'].state == 'off') return 'Fermer le
    Garage ?';

    else return 'Ouvrir/Fermer le Garage ?';

    ]]] 
hold_action:
  action: none
icon: |
  [[[
    if (states['binary_sensor.garage_ferme'].state == 'off') return 'mdi:garage';
    if (states['binary_sensor.garage_ouvert'].state == 'off') return 'mdi:garage-open';
    else return 'mdi:format-align-middle';
  ]]]
lock:
  duration: 5
  enabled: true
  unlock: tap
name: |
  [[[
    if (states['binary_sensor.garage_ferme'].state == 'off') return 'Garage Fermé';
    if (states['binary_sensor.garage_ouvert'].state == 'off') return 'Garage Ouvert';
    else return 'Intermédiaire';
  ]]]
show_icon: true
show_name: true
styles:
  card:
    - border: |
        [[[
          if (states['binary_sensor.garage_ferme'].state == 'off') return '2px solid var(--primary-color)';
          if (states['binary_sensor.garage_ouvert'].state == 'off') return '2px solid var(--yellow-color)';
          else return '2px solid var(--red-color)';
        ]]] 
    - border-radius: 10px
    - background-color: |
        [[[
          if (states['binary_sensor.garage_ferme'].state == 'off') return 'white';
          if (states['binary_sensor.garage_ouvert'].state == 'off') return 'var(--yellow-color)';
          else return 'var(--red-color)';
        ]]]
    - animation: |
        [[[
          if (states['binary_sensor.garage_ouvert'].state == 'off') return 'blink 0.7s ease infinite';
          if (states['binary_sensor.garage_ferme'].state == 'on') return 'blink 0.7s ease infinite';
        ]]]
  icon:
    - top: 2%
    - color: |
        [[[
          if (states['binary_sensor.garage_ferme'].state == 'off') return 'var(--primary-color)';
          if (states['binary_sensor.garage_ouvert'].state == 'off') return 'white';
          else return 'white';
        ]]] 
  label:
    - color: |
        [[[
          if (states['binary_sensor.garage_ferme'].state == 'off') return 'var(--primary-color)';
          if (states['binary_sensor.garage_ouvert'].state == 'off') return 'white';
          else return 'white';
        ]]] 
    - font-size: 10px
  lock:
    - color: var(--black-color)
  name:
    - color: |
        [[[
          if (states['binary_sensor.garage_ferme'].state == 'off') return 'var(--primary-color)';
          if (states['binary_sensor.garage_ouvert'].state == 'off') return 'white';
          else return 'white';
        ]]] 
    - font-variant: small-caps
tap_action:
  action: call-service
  service: input_boolean.turn_on
  service_data:
    entity_id: input_boolean.garage_command
type: 'custom:button-card'

Ce qui donne :

animate

PS: Quand tu cherches à notifier quelqu’un, mets un @ avant de taper le pseudo :+1: