Mémoriser l'heure de levé ou couché du soleil dans un input_datatime

Mémoriser l’heure de levé ou couché du soleil dans un input_datatime

Bonjour,

Je me lance dans mon premier post.
Je consulte le forum régulièrement depuis 3 mois et je trouve ici une bonne source d’inspiration.
Je bloque depuis quelques jours sur un petit script :
Je récupère les heures de levé et couché de soleil dans des sensors et je souhaite les mémoriser dans des input_datatime. J’utilise ces input_datatime pour basculer la lumière d’une scène à une autre en fonction du moment de la journée. L’idée est d’améliorer ces automatisations afin de tenir compte des journées plus longues en été et plus courtes en hiver.

Je me casse les dents sur ce petit programme et je ne vois pas ce qui bloque.
Voici mon script :

set_time:
  alias: test set time
  sequence:
    - service: input_datetime.set_datetime
      data_template:
        entity_id: time_scene_morning
        value: "{{ states('sensor.sunrise') }}"
  mode: single

Voici un exemple de la déclaration des input_datatime :

input_datatime: 
  time_scene_morning:
    name: Morning Scene Time
    has_date: false
    has_time: true
    initial: 07:00

Voici un exemple de la déclaration des sensors :

sensor: 
  - platform: template
    sensors:
      sunrise:
        friendly_name: levé soleil
        device_class: timestamp
        value_template: '{{ (as_timestamp(states.sun.sun.attributes.next_rising) +0) | timestamp_custom("%H:%M") }}'

Lorsque j’exécute le script j’obtiens cette erreur : Échec d’appel du service « script/set_time ». must contain at least one of date, time, datetime, timestamp.

Je vous remercie par avance.
Khaled

Ma configuration


[center]## System Health

version core-2021.4.0b4
installation_type Home Assistant Supervised
dev false
hassio true
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 4.19.0-13-amd64
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4789
Installed Version 1.11.3
Stage running
Available Repositories 780
Installed Repositories 97
Airly
can_reach_server ok
requests_remaining 48
requests_per_day 100
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 Debian GNU/Linux 10 (buster)
update_channel beta
supervisor_version supervisor-2021.03.9
docker_version 20.10.1
disk_total 115.4 GB
disk_used 41.3 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons AirCast (3.0.0), RPC Shutdown (2.2), AppDaemon 4 (0.5.1), Terminal & SSH (9.1.0), Zigbee2mqtt (1.18.1-1), AirSonos (3.0.0), Mosquitto broker (5.1.1), Grafana (6.2.0), Samba share (9.3.1), Plex Media Server (2.5.2), Tautulli (2.0.5), UniFi Controller (0.20.3), Check Home Assistant configuration (3.6.0), InfluxDB (4.0.3), AdGuard Home (4.0.0), Network UPS Tools (0.6.2), motionEye (0.11.1), Visual Studio Code (3.3.0), Node-RED (8.2.1), MariaDB (2.2.2), Grocy (0.11.1)
Lovelace
dashboards 1
resources 54
views 11
mode storage
[/center]

Salut,

Dans mes sensors j’ai ça et c’est fonctionnel :

  - platform: template
    sensors:
      nextsunrise:
        friendly_name: 'Next Sunrise'
        value_template: "{{ as_timestamp(state_attr('sun.sun', 'next_rising')) | timestamp_custom(' %H:%M') | replace(' 0', '') }}"
        icon_template: mdi:weather-sunset-up
      nextsunset:
        friendly_name: 'Next Sunset'
        value_template: "{{ as_timestamp(state_attr('sun.sun', 'next_setting')) | timestamp_custom(' %H:%M') | replace(' 0', '') }}"
        icon_template: mdi:weather-sunset-down

@+

Les sensors fonctionnent plutôt pas mal. C’est le stockage de de la valeur du sensor dans le input_datatime qui ne marche pas. Le script en gros.
J’ai modifié mes sensors comme toi, mais ça ne marche pas.
Merci

Il te manque le domaine à la clé entity_id :

set_time:
  alias: test set time
  sequence:
    - service: input_datetime.set_datetime
      data_template:
#       entity_id: time_scene_morning
        entity_id: input_datetime.time_scene_morning
        value: "{{ states('sensor.sunrise') }}"
  mode: single

Et ensuite :

Ce n’est pas la clé value mais time qu’il faut renseigner :

set_time:
  alias: test set time
  sequence:
    - service: input_datetime.set_datetime
      data_template:
#       entity_id: time_scene_morning
        entity_id: input_datetime.time_scene_morning
#       value: "{{ states('sensor.sunrise') }}"
  mode: single
        time: "{{ states('sensor.sunrise') }}"
  mode: single

Documentation : Input Datetime - Home Assistant

le _template n’est plus utile, tu peux l’enlever :+1:

Parfait, ça fonctionne correctement. :clap:
C’était dans la doc. Et pourtant j’ai regardé plusieurs fois.
Un grand merci!