Aucune condition ne fonctionne dans mon fichier YAML

Mon problème

Bonjour,
J’utilise un tableau de bord FloorPlan via fichier YAML, mais je suis face à un problème. Aucune condition ne passe dans mon code, un exemple ci-dessous :

          - type: 'custom:button-card'
            tap_action:
                  action: call-service
                  service: climate.turn_off
                  service_data:
                    entity_id: 
                      - climate.salon
            style:
                  top: 50%
                  left: 50%
            icon: 'mdi:radiator-off'
            name: 'Éteindre tous les radiateurs'
            color_type: card
            color: |
                if (states['climate.salon'].state === 'off') return 'var(--disabled-text-color)';
                return 'var(--primary-text-color)';

La couleur ne sera juste pas être appliqué. Peu importe la syntaxe et la condition, c’est comme si la ligne n’était pas lue et interprétée. Et ce sur mes différents éléments également. Je suis incapable de mettre une condition. Auriez vous une idée ? Je dois évidemment mal faire quelque chose.

Ma configuration


[center]## System Information

version core-2024.4.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.25-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4994
Installed Version 1.34.0
Stage running
Available Repositories 1399
Downloaded Repositories 14
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.2
update_channel stable
supervisor_version supervisor-2024.04.4
agent_version 1.6.0
docker_version 25.0.5
disk_total 30.8 GB
disk_used 7.8 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.13.0), File editor (5.8.0), Node-RED (17.0.12), FTP (5.0.2), Samba share (12.3.1)
Dashboards
dashboards 4
resources 29
views 3
mode yaml
Recorder
oldest_recorder_run 21 avril 2024 à 12:01
current_recorder_run 25 avril 2024 à 19:27
estimated_db_size 90.96 MiB
database_engine sqlite
database_version 3.44.2
[/center] Comment récupérer ma configuration : Dans votre HA, Menu latéral `Paramètres` > `Système` > `Corrections` puis les trois petits points en haut a droite > `Informations Système` puis une fois en bas `Copier` ___

Bonjour,
il te manque des crochets [[[ ]]].

exemple

                  - color: |
                      [[[
                        if (states['sensor.0xa4c138244f6e91e3_power'].state > 10)
                        return "green";  return "rgb(68, 115, 158)";
                      ]]] 

Ta la doc avec des exemples:

Merci pour ta réponse !
Mais même avec les crochets, ça ne change rien :

            color_type: card
            color: |
                [[[
                  if ((states['climate.salon'].state === 'off')
                    return "green";
                  return "red";
                ]]]

J’ai même testé en faisant :

          - type: 'custom:button-card'
            tap_action:
                  action: call-service
                  service: climate.turn_off
                  service_data:
                    entity_id: 
                      - climate.salon
            style:
                  top: 50%
                  left: 50%
                  background-color: >
                    [[[
                      if (11 > 10)
                        return "green";
                      return "red";
                    ]]]
            icon: 'mdi:radiator-off'
            name: 'Éteindre tous les radiateurs'
            color_type: card
            color: |
                [[[
                    if (11 > 10)
                    return "green";  return "rgb(68, 115, 158)";
                ]]] 

Même comme ça. Il ne se passe rien. Pourtant l’action fonctionne bien, le radiateur s’arrête.
image

fait le dans styles

styles:
  card:
    - color: >
       [[[
         if (states['climate.salon'].state == 'off')
           return "green";
           return "red";
       ]]] 

Ton code est incorrect, pour button-card ces styles avec un s.
Dans styles, tu a la partie card icon label name state… dans chaque partie tu peut configurer des options ( color, backgroud, size )

exemple:

  styles:
    card:
      - height: 100px
    label:
      - color: gray
      - font-size: 9px
      - justify-self: start
      - padding: 0px 5px
    name:
      - text-transform: uppercase
      - letter-spacing: 0.5em
      - font-familly: cursive
      - justify-self: start
      - padding: 0px 5px
    state:
      - justify-self: start
      - font-size: 10px
      - padding: 0px 5px

edit:
bizarre il y a pas @Cleya dans le coin :stuck_out_tongue:

Je te remercie pour ton aide, c’était bien ça le problème ici !
Malheureusement ça m’ajoute un autre souci, dans mon style j’avais un positionnement (left/top). J’ai du le basculer dans card mais il ne fait plus effet. Sais-tu pourquoi ?

Sans montrer le code, difficile de voir l’erreur.

  styles:
    card:
      - top:
      - less: #oups c'est left

Tout est pas bon dans son code (celui posté dans le premier post) de toute façon :grin:

1 « J'aime »