J’essaie d’adapter un exemple trouvé sur le forum, à savoir récupérer une valeur après exécution d’une requête sur internet, puis déclencher une publication mqtt si la valeur retournée par la requête génère un changement de valeur du sensor.
J’obtiens un message d’erreur « Invalid config for ‹ rest › at rests.yaml, line 5: ‹ trigger › is an invalid option for ‹ rest ›, check: rest->0->sensor->0->trigger »
J’ai testé la publication seule, elle fonctionne :
Disons qu’à la base un trigger c’est dans une automatisation.
Pour utiliser une automatisation dans ce cas:
Construit ton sensor source simplement.
Puis tu crées une automatisation qui lors du changement d’état de ton sensor déclenchera une action. (dans ce cas ta publication)
Mais en l’état j’ai l’impression que tout est dans le désordre dans ton YAML…
Tu déclares un trigger, à l’intérieur d’un sensor, pour lancer une action en cas de changement d’état d’un sensor…
Soit tu as deux actions bien différentes: la création du sensor « tempo demain » et ton action MQTT_publish et là il faut séparer les deux. Création du sensor dans le yaml (cf exemple ci dessus). Automatisation pour le reste sur le modèle:
Quand: changement d’état de sensor.tempo_demain
Alors faire Service: mqtt_publish…
Perso je n’utilise pas cette manière pour récupérer les jours tempo… donc mon aide risque de s’arrêter là…
- id: '1711392994391'
alias: maj esp_elec apres nouveau could
description: Met à jour la donnée COULD de l'esp32 pour qu'elle s'affiche sur le
lcd
trigger:
- platform: state
entity_id:
- sensor.tempo_demain
condition: []
action:
- service: mqtt.publish
data:
qos: '2'
topic: elec/recept/could
payload: ' {% if is_state(''sensor.tempo_demain'', ''TEMPO_BLEU'') %} 1 {% else
%} {% if is_state(''sensor.tempo_demain'', ''TEMPO_BLANC'') %} 2 {% else %}
{% if is_state(''sensor.tempo_demain'', ''TEMPO_ROUGE'') %} 3 {% else %} 0
{% endif %} {% endif %} {% endif %} '
mode: single
Ainsi toutes les heures une requête est faite pour mettre à jour sensor.tempo_demain et chaque changement de valeur entraîne l’automatisme qui réalise l’envoi d’un message MQTT