- platform: template
sensors:
sunriseinminutes:
friendly_name: 'Levé du soleil en Minutes'
value_template: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
- platform: template
sensors:
xxx:
friendly_name: 'xxxxxxxxxxxx'
value_template: >
{{ states(sunriseinminutes) }}"
Bonjour,
Je n’arrive pas a retourner dans xxx la valeur de sunriseinminutes
surment une erreur de syntaxe au niveau du STATES ou autre.
est-ce que ce ne serait pas plutôt ça qu’il te faudrait ?
{{ states(sensor.sunriseinminutes) }}"
1 « J'aime »
Hélas non, cela ne marche pas non plus.
ils sont définis comment tes sensors ?
Chez moi, j’ai ça dans le configuration.yaml :
# les sensors customisés
template: !include templates.yaml
Et du coup j’ai ça dans mon templates.yaml :
# https://www.home-assistant.io/integrations/template/
binary_sensor:
- state: "{{ states('sensor.puissance_seche_linge') | float(default = 0) > 5}}"
name: Sèche linge en cours
unique_id: seche_linge_en_cours
device_class: running
delay_off: "00:05:00"
Et du coup, je peux y accéder comme ça :
{{ states('binary_sensor.seche_linge_en_cours') }}
(avec les quotes autour du nom du sensor - que j’avais oubliées dans mon premier message)
Bonjour,
ta pas besoin de remettre platform: template et sensor, tu le met a la suite.
exemple:
- platform: template
sensors:
sunriseinminutes:
friendly_name: 'Levé du soleil en Minutes'
value_template: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
xxx:
friendly_name: 'xxxxxxxxxxxx'
value_template: "{{ states('sensor.sunriseinminutes') }}"
EDIT:
en bonus, tu devrais passer sur le nouveau format de template, pour être tranquille dans le futur.
exemple de la convertion:
template:
- sensor:
- name: 'Levé du soleil en Minutes'
unique_id: sunriseinminutes
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
- name: 'xxxxxxxxxxxxxx'
unique_id: xxx
state: "{{ states('sensor.sunriseinminutes') }}"
1 « J'aime »
Je viens d’essayer le nouveau format dans mon sensor.yaml, mais j’ai ce message d’erreur :
Avertissements de configuration
Invalid config for ‹ sensor › at configuration.yaml, line 17: required key ‹ platform › not provided
template:
- sensor:
- name: 'Levé du soleil en Minutes'
unique_id: sunriseinminutes
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
````
À mettre dans un fichier template plutôt que sensor ?
1 « J'aime »
Tu le mets dans le configuration.yaml ou sinon tu le découpe et
ajoute la ligne template: !include template.yaml
dans le configuration.yaml et créer un fichier template.yaml dans /config.
dans le template.yaml, ne pas mettre template:
au début:
- sensor:
- name: 'Levé du soleil en Minutes'
unique_id: sunriseinminutes
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
C’est bon maintenant j’ai le nouveau format.
Mais je n’arrive toujours pas a retourner dans le sensor XXXXXX la valeur de sunriseinminutes
ton template Levé du soleil en Minutes est nommer sensor.sunriseinminutes
quand tu va dans outils de dev et état ?
Pourquoi faire une nouveau template de la valeur du template que ta créer ?
Herbs
Février 28, 2024, 6:35
11
Master of solutions:
sensor.sunriseinminutes
Hum j’aurai plus dit :
sensor.leve_du_soleil_en_minutes
Mais j’ai un doute sur le traitement du « é » dans - name: 'Levé du soleil en Minutes'
1 « J'aime »
oui, ta raison, je suis fatigué
c’est l’unique id, me suis trompé et pas le friendly name
Herbs
Février 28, 2024, 6:36
13
Ça arrive à tout le monde
Slt…
Petite question quelle est l’utilité de 'Levé du soleil en Minutes'
!
Dans combien de temps OK, mais là ?
dans {{ (( as_timestamp(state_attr('sun.sun','next_rising')) - as_timestamp(now(),default=0)) /60) | int (0)}} minutes
- sensor:
- name: 'sunriseinminutes'
unique_id: sunriseinminutes
unit_of_measurement: "minutes"
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
- name: 'yyyyyy'
unique_id: yyyyyy
state: "{{ (states('sensor.sunriseinminutes')|int) }}"
Désolé mais cela ne marche toujours pas.
Je souhaite récupérer le sensor.sunriseinminutes pur effectuer une comparaison avec un autre sensor.
Tu la fait comment ta configuration ?
J’ai repris ton code dans mon configuration.yaml :
sensor:
- name: "sunriseinminutes"
unique_id: sunriseinminutes
unit_of_measurement: "minutes"
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
- name: "yyyyyy"
unique_id: yyyyyy
state: "{{ (states('sensor.sunriseinminutes')|int) }}
Et quand je lui demande de valider la configuration avant de redémarrer HA :
Avertissements de configuration
Invalid config for 'sensor' at configuration.yaml, line 34: required key 'platform' not provided
Invalid config for 'sensor' at configuration.yaml, line 41: required key 'platform' not provided
J’ai ca dans mon configuration.yaml
template: !include template.yaml
et le code ci-dessous dans template.yaml
- sensor:
- name: 'sunriseinminutes'
unique_id: sunriseinminutes
unit_of_measurement: "minutes"
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
- name: 'yyyyyy'
unique_id: yyyyyy
state: "{{ (states('sensor.sunriseinminutes')|int) }}"
Herbs
Février 28, 2024, 9:35
18
Salut @Eric_Veyrat
J’ai testé chez moi :
configuration.yaml
template.yaml
Et ça fonctionne :
Et rien dans les logs chez toi, as-tu bien redémarré HA ?
2 « J'aime »
J’ai repris ton code, dans mon template.yaml, à l’exception du "- " initial et de l’indentation :
sensor:
- name: "sunriseinminutes"
unique_id: sunriseinminutes
unit_of_measurement: "minutes"
state: >
{{ ((states('sensor.sun_next_rising')|as_datetime|as_local).time()).minute +
((states('sensor.sun_next_rising')|as_datetime|as_local).time()).hour*60 }}
- name: "yyyyyy"
unique_id: yyyyyy
state: "{{ (states('sensor.sunriseinminutes')|int) }}"
j’ai reloadé la configuration yaml, et tout fonctionne parfaitement :
EDIT : même avec le tiret et l’indentation, ça fonctionne… Tu as bien rechargé ta configuration yaml ?