Afficher la saisie d'un code pour activer un bouton mais pas pour le désactiver (button-card)

Bonjour,

Partage d'expérience

C’est mon premier post alors soyez indulgent :folded_hands:.

J’utilise Home Assistant depuis un peu plus d’un an et après toutes mes utilisations avec différents système, HA est pour moi (ça n’engage que moi) le meilleur des systèmes de Domotique.

Tout d’abord je voudrais remercier les membres de la communauté du Forum et particulièrement WarC0zes mais aussi tous les autres mais les énumérés serait trop long.
Grâce à vous tous j'ai pu puiser les informations manquantes pour faire avancer mon projet.

Maintenant que j’ai réalisé à mon image mon système domotique (je le fait évoluer constamment) je partage mon expérience.
Après avoir fait beaucoup de recherche, le fait de pouvoir saisir un code pour activer un bouton mais pas pour le désactiver.
Des solutions existent peut-être mais pour ma part, dans les résultats que j’ai trouvé, apparemment ce n’est pas faisable mais, grâce à vous, en mixant les différents résultats du Net, j'ai réussi à obtenir ce que je voulais.

Voici le code à intégrer (à modifier avec vos paramètres) :
J'ai essayer avec entity.state === 'on'; dans enabled: à la place de switch.inter_prise mais ça ne fonctionne pas !!!

      type: custom:button-card
      entity: switch.inter_prise
      lock:
        enabled: |
          [[[ if (states['switch.inter_prise'].state == 'off')
          return 'on';
          return '';
          ]]]
      tap_action:
        action: toggle
      protect:
        pin: |
          [[[ if (states['switch.inter_prise'].state == 'off')
          return '1234';
          return '';
          ]]]
      icon: mdi:power-socket-fr
      show_icon: true
      show_state: false
      show_name: false
      state:
        - value: 'on'
          styles:
            card:
              - background: rgba(244,179,6,1)
              - border: 4px inset white
            icon:
              - color: rgba(5, 1, 220, 1)
            lock:
              - position: absolute # Permet de positionner l'icon du cadenas 
              - top: 3px
              - right: 32px
              - color: transparent # Rend le cadenas invisible
        - value: 'off'
          styles:
            card:
              - background: blue
              - border: 2px outset grey
            icon:
              - color: grey
            lock:
              - position: absolute
              - top: 3px
              - right: 32px
              - color: red
              - opacity: 1
      styles:
        card: ...

Attention, je ne prétend pas que c'est la meilleure des solutions mais dans mon cas le résultat correspond à mes attentes.

:folded_hands: à tous pour le partage sur ce Forum.
Je ferais d'autres post pour partager mes petites trouvailles que j'ai adaptées dans mon projet.

Ma configuration


version core-2026.8.2
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch amd64
user root
virtualenv false
python_version 3.14.6
os_name Linux
os_version 6.18.39-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in true
subscription_expiration 15 avril 2027 à 02:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
remote_server eu-central-1-28.ui.nabu.casa
alexa_enabled false
google_enabled true
cloud_ice_servers_enabled true
certificate_status ready
instance_id d46d2b15ff3f4a36be03b3abf80efb9a
iot_state connected
iot_tries 0
certificate_expire_date 12 septembre 2026 à 23:14
certificate_fingerprint 23093bfcea8fd2fad190347fb3d1cb7d5b03f012
certificate_alternative_names undefined
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
HACS
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 3941
Downloaded Repositories 94
Home Assistant Supervisor
host_os Home Assistant OS 18.2
update_channel stable
supervisor_version supervisor-2026.07.5
agent_version 1.10.0
docker_version 29.6.2
disk_total 234.0 GB
disk_used 30.1 GB
nameservers 8.8.4.4, 1.0.0.1, 8.8.8.8, fd0f:ee:b0::1, 1.1.1.1
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (7.1.0), Zigbee2MQTT (2.13.0-1), Studio Code Server (6.0.1), Get HACS (1.3.1), Home Assistant Google Drive Backup (0.112.1), Music Assistant (2.9.13), File editor (6.1.0), Node-RED (22.0.1), TubesZB TI CC2652 FW Flasher (0.5.1.2), Zigbee2MQTT (2.13.0-1), ESPHome Device Builder (2026.7.4), Matter Server (9.2.0), Meross Local Broker Addon (0.0.1-alpha50), Speech-to-Phrase (1.4.3)
Dashboards
dashboards 14
resources 79
views 70
mode storage
Network Configuration
adapters lo (disabled), enp2s0 (enabled, default, auto), docker0 (disabled), hassio (disabled), veth7977498 (disabled), vethbcd4624 (disabled), vethe28fcb5 (disabled), veth57d8913 (disabled), veth1980fd0 (disabled), veth257482b (disabled), vethb94611f (disabled), veth4a30b6d (disabled), veth54bd520 (disabled), vethc61b7ea (disabled), veth9620ec5 (disabled), veth280ea1f (disabled), veth85cf5d7 (disabled), veth84451aa (disabled)
ipv4_addresses lo (127.0.0.1/8), enp2s0 (192.168.1.59/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), veth7977498 (), vethbcd4624 (), vethe28fcb5 (), veth57d8913 (), veth1980fd0 (), veth257482b (), vethb94611f (), veth4a30b6d (), veth54bd520 (), vethc61b7ea (), veth9620ec5 (), veth280ea1f (), veth85cf5d7 (), veth84451aa ()
ipv6_addresses lo (::1/128), enp2s0 (2a01:e0a:979:9970:3b8e:c39b:db7f:1ae5/64, fe80::b900:2441:d60b:d52e/64), docker0 (fdc7:c1c2:d303::1/64, fe80::90ca:b5ff:fe97:bbab/64), hassio (fd0c:ac1e:2100::1/48, fe80::ec4e:5cff:fe1f:6b92/64), veth7977498 (fe80::40f8:56ff:feb0:6577/64), vethbcd4624 (fe80::b08f:3bff:febb:5323/64), vethe28fcb5 (fe80::7ccb:74ff:fe6d:461c/64), veth57d8913 (fe80::5824:fff:fe54:4df9/64), veth1980fd0 (fe80::f8bf:17ff:fe39:1de9/64), veth257482b (fe80::d4d2:e9ff:fecf:de34/64), vethb94611f (fe80::1ca1:d9ff:fe0e:40d8/64), veth4a30b6d (fe80::5c97:d1ff:fe46:c0ac/64), veth54bd520 (fe80::a414:85ff:fe40:f3ef/64), vethc61b7ea (fe80::cc5:2fff:feb1:3927/64), veth9620ec5 (fe80::88ec:cfff:fe44:e18e/64), veth280ea1f (fe80::ec48:edff:fe20:4360/64), veth85cf5d7 (fe80::5429:9fff:feb8:aea2/64), veth84451aa (fe80::d8ae:26ff:fe82:2df8/64)
announce_addresses 192.168.1.59, 2a01:e0a:979:9970:3b8e:c39b:db7f:1ae5, fe80::b900:2441:d60b:d52e
Recorder
oldest_recorder_run 1 août 2026 à 09:42
current_recorder_run 17 août 2026 à 20:47
estimated_db_size 347.92 MiB
database_engine sqlite
database_version 3.53.2
2 « J'aime »