HA Débutant : Dans carte Horizontale/manuel - Faire addition valeur de deux sensor

Bonjour,
Dans une carte horizontale, en carte manuelle, j’ai un code comme celui-ci :

type: custom:button-card
entity: sensor.prix_actuel
label: |
  [[[
     return '<b>Bleu</b><hr width="100" size="1" align=center color ="#FFFFFF"></hr>' + states['sensor.rte_tempo_cycle_jours_restants_bleu'].state + '/'  + states['sensor.rte_tempo_cycle_jours_deja_places_bleu'].state + '<br>HP ' + states['input_number.edf_tempo_bleu_hp'].state + '<BR>'+'HC ' + states['input_number.edf_tempo_bleu_hc'].state;
  ]]]
show_label: true
show_icon: false
show_state: false
show_name: false
styles:
  card:
    - border-radius: 10px
    - padding-top: 5px
    - background-color: blue

Je souhaite additionner ‹ restants › + ‹ deja en place › ici, au lieu d’avoir seulement ‹ deja en place ›:

'/'  + states['sensor.rte_tempo_cycle_jours_deja_places_bleu'].state + '<br>HP '

Sans devoir passer par une entrée qui ferait la somme.
Merci pour votre aide.

## System Information

version | core-2025.8.3
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
container_arch | amd64
user | root
virtualenv | false
python_version | 3.13.3
os_name | Linux
os_version | 6.12.41-haos
arch | x86_64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

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 | 2232
Downloaded Repositories | 9

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | true
-- | --
subscription_expiration | 5 février 2026 à 01:00
relayer_connected | true
relayer_region | eu-central-1
remote_enabled | true
remote_connected | true
alexa_enabled | true
google_enabled | true
cloud_ice_servers_enabled | true
remote_server | eu-central-1-24.ui.nabu.casa

can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 16.1
-- | --
update_channel | stable
supervisor_version | supervisor-2025.08.3
agent_version | 1.7.2
docker_version | 28.3.3
disk_total | 62.3 GB
disk_used | 13.3 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | kvm
board | ova
supervisor_api | ok
version_api | ok
installed_addons | Get HACS (1.3.1), File editor (5.8.0), Terminal & SSH (9.19.0), Samba Backup (5.2.0), AirSend (1.2), Node-RED (20.0.0), Mosquitto broker (6.5.1), Blueriiot Blue Connect (2023.11.0)

</details>

<details><summary>Dashboards</summary>

dashboards | 2
-- | --
resources | 4
views | 8
mode | storage

</details>

<details><summary>Network Configuration</summary>

adapters | lo (disabled), enp0s18 (enabled, default, auto), docker0 (disabled), hassio (disabled), veth242eafb (disabled), veth6e767f9 (disabled), veth83ab5f7 (disabled), veth20f6c44 (disabled), veth82db73a (disabled), vethb1a19b1 (disabled), vethabf37ba (disabled), vethbbedc90 (disabled), veth2328baf (disabled), veth3435c4c (disabled), veth07134b6 (disabled), veth5985170 (disabled)

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 6 août 2025 à 12:54
-- | --
current_recorder_run | 24 août 2025 à 21:34
estimated_db_size | 1809.37 MiB
database_engine | sqlite
database_version | 3.48.0

</details>

Bonjour,

Y-a-t’il une raison particulière de ne pas vouloir passer par le création d’une nouvelle entité?

C’est certainement la meilleure solution (si ce n’est la seule). Les cartes gèrent l’affichage, pas les calculs.

Non, mais vu que j’ai déjà deux valeurs via les sensor, je trouve dommage de devoir créer une entrée qui fait la somme de deux entités. Mais si on ne peut pas faire autrement, je ferai comme ça. Et je pensais que ce serait simple de faire sensor.xxxx + sensor.xxxxx

Salut

@Gilles2 a tout à fait raison de poser la question. Par principe les entités servent aux valeurs, et les cartes à l’affichage. Dans les faits il y a toujours moyen de faire des calculs dans les cartes et de la mise en forme dans les entités mais c’est sources d’ennuis à un moment ou à un autre.
Par ailleurs, il y aussi des tas de choses (intégrations) qui font le calcul des jours blancs/bleus/rouges donc refaire à la main c’est pas non plus le plus direct

Alors oui, mais celle de RTE Tempo, cela donne ça en prenant les valeurs de l’intégration :


Or, pour le bleu, 299, ce n’est pas le nombre de jour dans l’année, c’est les jours passés bleu à date. Je voudrai avoir 1/300 pour reste 1 jour sur 300 dans l’année. D’ou faire la somme deja place+restant

1 « J'aime »

Et 300 c’est pas une valeur fixe ?

Pas dans l’intégration, d’ailleurs l’année dernière ça devait être 301

1 « J'aime »

Et cela me permettra de savoir comment faire le calcul dans le code d’une carte

A mon avis, oublie l’idée de le faire dans la carte.

Ok merci pour l’aide
Je vais donc créer une entrée pour faire le calcul
En fait 3 entrées

1 « J'aime »

Oui c’est bien mieux

Là tu pars sur une carte qui fait du JS… Et dans la majorité des cas, c’est du jinja… ça coute pas plus cher de la faire dans une entité (template jinja) qui sera utilisable partout (carte JS ou Jinja), dans les historiques etc…

Bonjour,
un exemple, mais il doit y avoir mieux. @btncrd aura surement une meilleure solution.

type: custom:button-card
entity: sensor.lywsd03mmc_0d20_temperature
name: |
      [[[
      var a = states['sensor.lywsd03mmc_0945_temperature'].state;
      var b = states['sensor.lywsd03mmc_0d20_temperature'].state;
      return ( a ) + ' / ' + ( b ) + '°C';
      ]]]
section_mode: false

show_label: true
label: |
      [[[
      var a = states['sensor.lywsd03mmc_0945_temperature'].state;
      var b = states['sensor.lywsd03mmc_0d20_temperature'].state;
      return Math.floor(a) + Math.floor(b) + ' °C';
      ]]]

Donc c’est comme ça.
Pas grave
Pour ma part, vu la difficultés à classer les entités, les entrées (qui sont en fait des entités créées) dans l’interface, si on n’en a besoin nulle part ailleurs, le plus simple est de faire la fonction là où elle doit être, si c’est possible.
Chacun a son type de classement, je peux comprendre.
Merci de m’avoir dit que c’était possible.

Merci je vais me l’arranger et tester.

Bon, impossible de faire comme toi, je suis donc passé par des entrées.
Même en mettant précision 0, j’avais 1/300,0.
J’ai donc mis Math.floor devant mes entrées créés, maintenant c’est bon 1/300
Merci à tous pour votre aide, je vais laisser comme ça, je n’ai pas vraiment envie de passer des heures sur des additions de données (entités, entrées, etc…)
Je viens de Jeedom, donc forcément ce n’est pas simple, surtout lorsqu’on y est depuis 9 ans, avec tous ces équipements (400) et commandes (6900) et scénario et …Je passe un peu de temps pour basculer, et c’est long. J’en profite aussi pour simplifier, faire le « ménage » :wink:
D’ailleurs, question bête surement, je n’ai pas trouvé mais peut on créer un groupe dans Entrée/Entitée ? J’utilise Libellé mais bon, c’est pas visuel lorsqu’on est sur la page.

Créer des entrées +/-, en addition, on aura des sensor.xxx de sommes de plusieurs sensor.xxxx
Ensuite les mettre dans ses cartes

type: custom:button-card
entity: sensor.prix_actuel
label: |
  [[[
     return '<b>Bleu</b><hr width="100" size="1" align=center color ="#FFFFFF"></hr>' + states['sensor.rte_tempo_cycle_jours_restants_bleu'].state + '/'  + Math.floor(states['sensor.som_edf_tempo_jours_bleu'].state) + '<br>HP ' + states['input_number.edf_tempo_bleu_hp'].state + '<BR>'+'HC ' + states['input_number.edf_tempo_bleu_hc'].state;
  ]]]
show_label: true
show_icon: false
show_state: false
show_name: false
styles:
  card:
    - border-radius: 10px
    - padding-top: 5px
    - background-color: blue

Je m’auto répond : … à droite, créer une catégorie, cela regroupe avec le nom de la catégorie

Salut

C’est justement ce que j’allais t’indiquer.

Tu peux le faire dans les entrées, les automatisations et les scripts.

1 « J'aime »