Aide sur code a appliquer pour extraire date et heure d'un attribut

Bonjour,
pouvez vous m’aider sur la ligne de code a appliquer afin d’extraire la date et l’heure de fin que mon lave linge communique. Cette valeur est dans l’attribut end_time de sensor.lave_linge
Cette attribut indique par exemple la valeur :

end_time: "2024-11-06T08:26:40.331513+00:00"

J’ai donc créer une ligne dans mon fichier template.yaml

  - sensor:
      - name: "Heure de fin du lave-linge"
        state: "{{ state_attr('sensor.lave_linge', 'end_time') | as_datetime | as_local | timestamp_custom('%H:%M') }}"

Malheureusement cela ne fonctionne pas cela me renvoi toujours l’état unavailable

Merci pour votre disponibilité,

Ma configuration


System Information

version core-2024.10.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.54-haos
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 5000
Installed Version 2.0.1
Stage running
Available Repositories 1461
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 13.2
update_channel stable
supervisor_version supervisor-2024.10.3
agent_version 1.6.0
docker_version 27.2.0
disk_total 116.7 GB
disk_used 8.1 GB
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 Terminal & SSH (9.15.0), Linky (1.5.0), File editor (5.8.0), Cloudflared (5.2.0), Mosquitto broker (6.4.1), Zigbee2MQTT (1.41.0-1), Music Assistant Server (2.3.2)
Dashboards
dashboards 5
resources 10
views 11
mode storage
Recorder
oldest_recorder_run 1 novembre 2024 à 07:38
current_recorder_run 4 novembre 2024 à 13:18
estimated_db_size 131.00 MiB
database_engine sqlite
database_version 3.45.3
Spotify
api_endpoint_reachable ok

Bonjour @samlaeti,

Peux-tu essayer ceci dans les outils de dev (heure de fin) :

{{ as_timestamp(state_attr('sensor.lave_linge', 'end_time')) | timestamp_custom('%Hh%M', true) }}

Ou ceci selon ta préférence (compte à rebours):

{{ (as_timestamp(state_attr('sensor.lave_linge', 'end_time')) - as_timestamp(now())) | timestamp_custom('%Hh%Mm') }}

Ce qui devrait te donner ça :
image

Merci beaucoup @Integra
Cela fonctionne mais le temps restant est décalé d’1h par rapport à la réalité :thinking: c’est le sensor qui envoi une mauvaise info ou c’est un problème de fuseau horaire ?

1 « J'aime »

Pas de soucis !

Problème de fuseau horaire je dirai, et c’est de ma faute j’ai oublié de le préciser dans le code, essaie c’est 2 possibilités et vois celle qui fonctionne pour toi :

{{ (as_timestamp(state_attr('sensor.lave_linge', 'end_time')) - as_timestamp(now())) | timestamp_custom('%Hh%Mm', true)) }}

ou

{{ (as_timestamp(state_attr('sensor.lave_linge', 'end_time')) - as_timestamp(now())) | timestamp_custom('%Hh%Mm', false)) }}

Le « local time » est réglé dans le timestamp_custom, valeur « true » ou « false ».

Salut

image

Le sensor te renvoie l’heure UTC.
Il faut donc convertir en heure local en premier avec timestamp_local:

{{ ((as_timestamp(state_attr('sensor.lave_linge', 'end_time'))|timestamp_local) - as_timestamp(now())) | timestamp_custom('%Hh%Mm')) }}

Bonjour @Giga77,

Oui tout à fait mais n’est ce pas déjà fait avec la variable true/false dans le timestamp_custom que j’ai proposé ?

timestamp_custom(format_string, local=True, default)