Script pour modifier datetime via un input number

Bonjour à tous,
Je cherche à créer un script qui me modifierai un datetime en fonction de la valeur d’un input number.
Exemple, j’ai un date time a la date du 10/05/2023, et le input number a 7.
Quand j’exécute mon script, le date time passe au 17/05/2023

Merci.

Hello,

Histoire de ne pas réinventer la roue, tu as un exemple sensiblement équivalent ici :
Sensor templating - Add integer (input_select) days to input_datetime date - Configuration - Home Assistant Community (home-assistant.io)

3 « J'aime »

J’ai bien vue cette solution, mais cela fonctionne pour créer un sensor, les template ne fonctionne pas dans les scripts pour modifier directement un datetime, ou si ?

Si non est ce qu’il existe une fonction pour aligner un date time a un sensor ? Si c’est possible je créer le sensor comme dans le post en liens, et avec le script j’aligne mon date time sur le sensor au moment voulu.

Salut

il n’y a pas de limite… c’est du code donc tu peux quasi tout faire

Je n’ai pas forcément compris le besoin mais de ton message initial,je comprends :
Tu mets un date à 20/04, tu mets 7 sur ton input_number (peu importe la méthode pour l’instant) et tu sais que la date sera 27/04… Pour 1 semaine çà va, mais dans 1 an tu mets 365 dans ton input ???

Ok je vais approfondir mes recherche pour le script alors, parce que je n’arrive pas a le faire fonctionner avec l’exemple de code.

Oui c’est bien ca, en gros j’ai une tache a faire tous les 7 jours, donc je règle mon input number sur 7, quand c’est fait je clic sur le bouton qui déclenche mon script, ca décale ma date de 7 jours, et j’ai donc a nouveau un rappel dans 7 jours.
Et je veux passer par un input number car j’aurais plusieurs rappel, avec plusieurs délais différents.

Edit:
C’est bon, j’ai bien réussi a faire ce que je voulais avec l’exemple de code dans mon script :

service: input_datetime.set_datetime
data:
  entity_id: input_datetime.XXXX
  date: >
    {% set d = states('input_number.YYYYY') | int(0) %} {{
    (states('input_datetime.XXXX') | as_datetime  + timedelta(days=
    d )).date() }}
1 « J'aime »

:+1:et sans réinventer la roue :wink:

2 « J'aime »