Template sensor

- 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 ?

Hum j’aurai plus dit :

sensor.leve_du_soleil_en_minutes

image

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é :sweat_smile:
c’est l’unique id, me suis trompé et pas le friendly name

Ça arrive à tout le monde :wink:

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) }}"   

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 ?