Syntaxe YAML pour variable dans template.sensor.picture

Bonjour,

Je rencontre un soucis pour utiliser une variable dans un templates sensor:

-  name: 'Nut Guillaume'
   state: >-
     {% set time = states('sensor.time') %}
     {% if ( ( ( ( ( as_timestamp(now()) ) - ( as_timestamp( states.sensor['rssi_nut_guillaume'].last_changed) ) | int ) | round(0) ) / 60 ) | int ) <2%}
       {% set status = 'On' %}
     {% else %}
       {% set status = 'Off' %}
     {% endif %}
     {{ status }}
   picture: /local/presence/nut_guillaume_{{ status }}.jpg

Je définis une variable status dans mon state… Et j’aimerais la récupérer pour l’URL de ma photo. Mais je n’arrive pa à trouver la bone syntaxe.

Ma configuration


System Information

version core-2024.10.2
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.8.12-2-pve
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 4994
Installed Version 2.0.1
Stage running
Available Repositories 1442
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 3
resources 0
views 1
mode storage
Recorder
oldest_recorder_run 16 octobre 2024 à 18:23
current_recorder_run 18 octobre 2024 à 11:59
estimated_db_size 2.00 MiB
database_engine sqlite
database_version 3.45.3
___

Bonjour,

Je ne suis pas certain que vous puissiez faire cela, car les variables sont je pense « interne » à chaque « clé » à valider

Peut-être faire un template pour picture: avec la prise en compte du state de ce sensor.

Tu aurais un exemple ? Car un template de template ça me semble complexe…

Quelque chose comme dans cet exemple avec le icon::

template:
  - binary_sensor:
      - name: Sun Up
        state: >
          {{ is_state("sun.sun", "above_horizon") }}
        icon: >
          {% if is_state("binary_sensor.sun_up", "on") %}
            mdi:weather-sunset-up
          {% else %}
            mdi:weather-sunset-down
          {% endif %}

Merci !

-  name: 'Nut Guillaume'
   state: >-
     {% set time = states('sensor.time') %}
     {% if ( ( ( ( as_timestamp(now()) - as_timestamp(states.sensor['rssi_nut_guillaume'].last_changed) ) | int ) | round(0) ) | int ) < ( states('var.ble_timeout') | int ) %}
       Présent
     {% else %}
       Absent
     {% endif %}
   picture: >
     {% if ( ( ( ( as_timestamp(now()) - as_timestamp(states.sensor['rssi_nut_guillaume'].last_changed) ) | int ) | round(0) ) | int ) < ( states('var.ble_timeout') | int ) %}
       /local/presence/nut_guillaume_on.jpg
     {% else %}
       /local/presence/nut_guillaume_off.jpg
     {% endif %}

Bonjour @llaumgui,
pour les nuts, tu peut passer par l’intégration Bluetoth LE Tracker.

Ça te créer un device_tracker, avec l’état home/not_home.

Pour changer l’image avec customize et un template, tu peux utiliser Custom-ui.

exemple dans le configuration.yaml :

homeassistant:
  customize:
    person.marius:
      templates:
        entity_picture: >
           if (state === 'home') return '/local/presence/nut_guillaume_on.jpg'; 
           return '/local/presence/nut_guillaume_off.jpg';
1 « J'aime »