Fréquence de rafraîchissement d'un capteur

Bonjour,

Ce capteur virtuel élaboré de mémoire avec l’aide de @WarC0zes permet de récupérer la T° de ma sonde extérieure si celle de Meteo France est défaillante.
Problème, ce capteur n’envoie rien tant que la T° ne bouge pas, alors que mon régulateur Siemens Synco700 demande visiblement un rafraîchissement régulier de la T° extérieure qu’il reçoit (la sonde de toiture envoie une info toutes les 2 minutes et ça fonctionne bien).

Quel code faudrait-il rajouter au Template pour que ce capteur virtuel envoie sur le bus KNX une info toutes les 2 minutes.
Merci pour vos conseils,
patrickp78

{% if (now() - states.sensor.rambouillet_temperature.last_changed).total_seconds() < 7200 %}
            {{ states('sensor.rambouillet_temperature') }}
          {% else %}
            {{ states('sensor.temp_sonde_exterieure') }}
          {% endif %}

Bonjour,

Je réponds strictement à la question c’est à dire ajouter au template un rafraichissement toutes les 2 minutes. https://www.home-assistant.io/integrations/template/#trigger-based-template-entities

template:
  - trigger:
      - platform: time_pattern
        minutes: "/2"  
    sensor:
      - name: "Température extérieure"
        unit_of_measurement: "°C"
        state: >
          {% if (now() - states.sensor.rambouillet_temperature.last_changed).total_seconds() < 7200 %}
            {{ states('sensor.rambouillet_temperature') }}
          {% else %}
            {{ states('sensor.temp_sonde_exterieure') }}
          {% endif %}

Je ne suis certain que ça soit le plus logique.
Il faudrait peut-être mettre à jour en cas de changement d’état ou toutes les 5 minutes.

1 « J'aime »

Merci pour le retour,
Comment je peux maintenant intégrer le trigger dans le template du sensor ? C’est à partir d’un autre type de template ?

Tu remplaces ton template sensor par celui ci (en mettant le bon name)

J’ai créé mon template dans HA comme une entrée/template/sensor.
Est-ce que je dois mettre le code indiqué dans FileEditor et dans ce cas que devient l’entrée template ?

Salut,
tu ne peux pas créer de trigger template par le UI, c’est quand YAML. Tu dois le faire soit dans ton configuration.yaml ou ton template.yaml si tu as découper la configuration.

Donc je mets le code dans File Editor dans configuration.yaml (je n’ai que deux templates donc pas besoin pour l’instant de dossier spécifique) et je supprime l’entrée, c’est bien ça ?

1 « J'aime »

@armavi le code ne provoque pas un rafraichissement de l’entité toutes les 2 minutes. Peut-être une erreur de syntaxe ?
Si l’on pouvait également le compléter pour qu’il donne une décimale… (4.1°C au lieu de 4°C). J’ai beau relire la page Template de HA et son Formating Sensor States, j’ai toujours des messages d’erreur ! :cry:

template:
  - trigger:
      - platform: time_pattern
        minutes: "/2" 
    sensor:
      - name: "Temp Ext choisie"
        unit_of_measurement: "°C"
        state: >
          {% if (now() - states.sensor.rambouillet_temperature.last_changed).total_seconds() < 7200 %}
            {{ states('sensor.rambouillet_temperature') }}
          {% else %}
            {{ states('sensor.temp_sonde_exterieure') }}
          {% endif %}

Bonjour,

Dans ma réponse, j’ai repris la partie sécurisation en ne rajoutant que le trigger.
Je suis sur de mon trigger, même si on pourrait surement l’améliorer.

Pour la partie sécurisation, il y a des problèmes à mon avis mais qui n’explique pas nécessaire tes ennuis.

Si tu as des messages d’erreur, il faudrait les copier coller.

Par ailleurs il faudrait tester en allant dans la partie développement> modèles et donner les résultats pour :

  1. {{ states('sensor.rambouillet_temperature') }}
  2. {{ states.sensor.rambouillet_temperature.last_changed }}
  3. {{ states.sensor.rambouillet_temperature.last_reported }}
  4. {{ states('sensortemp_sonde_exterieure') }}
  5. {{ states.sensor.temp_sonde_exterieure.last_changed }}
  6. {{ now() }}

Voilà pour les résultats à 8:27

  - trigger:
      - platform: time_pattern
        minutes: "/2"  
  - sensor:
      - name: "Temp Ext choisie"
        unit_of_measurement: "°C"
        state: >
          {% if (now() - states.sensor.rambouillet_temperature.last_changed).total_seconds() < 7200 %}
            {{ states('sensor.rambouillet_temperature') }}
          {% else %}
            {{ states('sensor.temp_sonde_exterieure') }}
          {% endif %}

Voilà ce que ça donne :


Le résultat est un string

Tiens, en passant, j’ai ce message qui se réveille !

regarde son exemple, il n’y a pas de - devant sensor.

c’est pourquoi tu as ce message :

1 « J'aime »

Merci @WarC0zes !
Du coup, j’ai supprimé le template au-dessus du trigger parce que j’avais déjà celui de la lune au-dessus. C’est bon ?
A checker aussi les deux sensor avec et sans tirets

template:
  - sensor:      
    - name: Lune
      state: >-
        {{ state_translated('sensor.moon_phase') }}
      picture: /local/images/moon_phases/{{ states('sensor.moon_phase') }}.png

  ### Choix Température extérieure ###
  - trigger:
      - platform: time_pattern
        minutes: "/2"  
    sensor:
      - name: "Temp Ext choisie"
        unit_of_measurement: "°C"
        state: >
          {% if (now() - states.sensor.rambouillet_temperature.last_changed).total_seconds() < 7200 %}
            {{ states('sensor.rambouillet_temperature') }}
          {% else %}
            {{ states('sensor.temp_sonde_exterieure') }}
          {% endif %}

Oui, c’est bon la.image

1 « J'aime »

@WarC0zes @armavi
OK pour le code, mais le rafraichissement ne se fait toujours pas toutes les 2 minutes…
Merci pour votre aide,

toute facon ton entité metéo france sensor.rambouillet_temperature est actualisé toutes les heures si je dit pas de bétisse.
tu devrais investir dans un bon capteur de temp.

J’ai déjà un bon capteur de température (Schneider Electric KNX Réf. MTN663991 - mise à jour toutes les 2 min). Le problème n’est pas là. Il est installé trop près de la toiture qui fausse la mesure (actuellement 10.7°c pour 7°C sur Open Meteo*) et difficile à déplacer.
Le but est donc de récupérer Open Meteo local (mise à jour toutes les 15 min) et de l’envoyer sur le KNX, sauf si Open Meteo est défaillant (c’est ce que tu m’avais aidé à mettre en place).
Il faut donc que mon capteur virtuel renvoie une donnée toutes les 2 min maxi sur le bus, même s’il s’agit de la même valeur.
nb : pour le moment je fais avec Meteo France et je basculerai ensuite sur l’API d’Open Meteo