Bonjour,
Mon problème
Je souhaite créer une date de relance pour le programme de rinçage de mon lave-vaisselle.
La date de départ est celle du jour.
Le nombre de jours de décalage se situe dans un
« input_number.decalage » .
La date de relance se situera dans un input_datetime. Pour pouvoir l’afficher sur mon Dashboard.
Je ne trouve pas la syntaxe pour réaliser cette opération.
Ma configuration
System Information
version
core-2024.6.4
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.31-haos-raspi
arch
aarch64
timezone
Europe/Paris
config_dir
/config
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
5000
Installed Version
1.34.0
Stage
running
Available Repositories
1391
Downloaded Repositories
65
HACS Data
ok
Home Assistant Cloud
logged_in
true
subscription_expiration
16 juillet 2024 à 02:00
relayer_connected
true
relayer_region
eu-central-1
remote_enabled
true
remote_connected
true
alexa_enabled
true
google_enabled
true
remote_server
eu-central-1-20.ui.nabu.casa
certificate_status
ready
instance_id
0beed8515cea4d3db77a00adf82e7579
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 12.4
update_channel
stable
supervisor_version
supervisor-2024.06.2
agent_version
1.6.0
docker_version
26.1.4
disk_total
228.5 GB
disk_used
17.0 GB
healthy
true
supported
true
host_connectivity
true
supervisor_connectivity
true
ntp_synchronized
true
virtualization
board
rpi4-64
supervisor_api
ok
version_api
ok
installed_addons
Terminal & SSH (9.14.0), File editor (5.8.0), Samba share (12.3.1), Studio Code Server (5.15.0), InfluxDB (5.0.0), Grafana (10.0.0), Linky (1.4.0), Mosquitto broker (6.4.1), Zigbee2MQTT (1.39.0-1), go2rtc (1.9.4), Frigate (0.13.2)
Dashboards
dashboards
2
resources
45
views
35
mode
storage
Recorder
oldest_recorder_run
23 juin 2024 à 06:59
current_recorder_run
2 juillet 2024 à 18:32
estimated_db_size
171.24 MiB
database_engine
sqlite
database_version
3.44.2
Xiaomi Miot Auto
component_version
0.7.18
can_reach_server
ok
can_reach_spec
ok
logged_accounts
0
total_devices
0
Excusez moi, pas trop bien réveillé’ je manque a tous mes devoirs
« merci pour votre aide »
Bob
Juillet 3, 2024, 8:17
3
1 « J'aime »
Salut,
C’est pas facile de savoir ce que tu veux afficher au final, la date, le nb de jours restant ?
Et puis est-ce utilise de mettre ça dans un input_datetime ? si c’est juste pour de l’affichage, c’est pas certain.
Voila à une base de travail
{% set nbj = states('input_number.seuil_isolation') | int(0) %}
{% set decal = (nbj~" days") | as_timedelta %}
{% set ndate = now() + decal %}
Prochaine date : {{ndate}}
{% from 'easy_time.jinja' import custom_time_between %}
Restants : {{ custom_time_between(ndate, now(), 'day', language='fr') }}
Salut @Pulpy-Luke
Grace à toi j’ai enfin le résultat escompté.
Toutefois je souhaiterais la date uniquement, et un format à la française.
actuellement j’ai ca :
merci et bonne journée
j’ai mis ca dans un template au lieu de l’input_datetime
{% set nbj = states('input_number.frequence_rincage_lv_2') | int(0) %}
{% set decal = (nbj~" days") | as_timedelta %}
{% set ndate = now() + decal %}
{{ndate}}
Salut,
Pour moi il y encore des trucs pas clairs donc ton idée… now + 5j ça donne le 08 aujourd’hui mais demain, sauf si l’input_number est recalculé d’une façon ou d’une autre, ça donnera le 09
Et donc si tu fais une modification au fur et à mesure de l’input_number, autant partir sur une date fixe (input_datetime), plutôt qu’un delta (input_number)
{% set nbj = states('input_number.frequence_rincage_lv_2') | int(0) %}
{% set decal = (nbj~" days") | as_timedelta %}
{% set ndate = now() + decal %}
{{as_timestamp(ndate,0)| timestamp_custom('%d-%m-%Y') }}
bonjour a toutes et a tous
@Pulpy-Luke en fait tu as raison.
Je souhaite remplacer le now() par la valeur de input_datetime.rincage_dernier
et je n’y arrive pas quelles serait la bonne syntaxe ?
bonne journée
Salut
Tu as essayé avec states('input_datetime.rincage_dernier')
?
Oui mais message erreur en outil développement
« TypeError: can only concatenate str (not « datetime.timedelta ») to str »
Mon code
{% set nbj = states('input_number.frequence_rincage_lv_2') | int(0) %}
{% set decal = (nbj~" days") | as_timedelta %}
{% set ndate = states('input_datetime.rincage_dernier') + decal %}
{{as_timestamp(ndate,0)| timestamp_custom('%d-%m-%Y') }}
C’est quoi le contenu de input_datetime.rincage_dernier ?
N’oublie pas la mise en forme du code, sinon c’est compliqué à corriger/comprendre
Pour la mise en forme du code c’a bug j’ai essayé par 2 fois.
Pour l’input_ number il enregistre la date du rincage soit la date du jour . A l’aide d’une automatisation.
Du coup elle se trouve figée pour éviter le pb que tu soulevais plus haut si on utilise now() ce qui décalerait d’un jour chaque jour la date butoir.
ça marche très bien il faut utiliser le bon raccourci
Bydoochons:
Pour l’input_ number il enregistre la date du rincage soit la date du jour . A l’aide d’une automatisation.
Du coup elle se trouve figée pour éviter le pb que tu soulevais plus haut si on utilise now() ce qui décalerait d’un jour chaque jour la date butoir.
J’ai bien compris comment ça fonctionne, mais ce que j’ai besoin de savoir c’est à quoi ressemble son contenu. Un timestamp, une date/heure etc …
En fonction de comment c’est ecrit dedans, le calcul à faire est différent.
Tu peux par exemple partager ce que tu en vois dans les outils de dev
Voilà 3 exemples différents
Comme tu peux constater sur image ci dessous je n’ai pas l’icone pour le code.
Sinon pour mon input_number
Merci pour ton aide dans tous les cas
clique sur la petite roue
Essaye ça
{% set nbj = states("input_number.frequence_rincage_lv_2") | int(0) %}
{% set decal = (nbj~" days") | as_timedelta %}
{% set last = states("input_datetime.rincage_dernier") %}
{% set ndate = strptime(last,"%Y-%m-%d") + decal %}
{{as_timestamp(ndate,0)| timestamp_custom('%d-%m-%Y') }}
Parfait merci et bonne fin de soirée