Désolé pour ce retard mais la semaine a été dur… Et je n’ai pu mis remettre que ce WE.
Super, j’ai pu avoir quelque chose de fonctionnel avec ce code :
Le code d’un script pour l’exemple, les 2 autres fonctionnent sur le même principe en changeant juste l’input_boolean, la valeur di is_state() et le payload envoyer évidemment.
Le code du script automower_home_mode.yaml
#
# Script de gestion du bouton Home de la tondeuse
#
automower_home_mode:
# alias: ce_que_tu_veux
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.automower_home_demand
- service: mqtt.publish
data:
payload: 0F812C0003
topic: Automower/AM_G2/Cmd/Rawcmd
- wait_template: "{{ is_state('sensor.automower_mode', 'home') }}"
- service: input_boolean.turn_off
target:
entity_id: input_boolean.automower_home_demand
Mon problème restant est que si l’état de sensor.automower_mode est à « auto », le bouton est vert fixe et lorsque j’appuie sur le bouton « Home » par exemple pour envoyer l’ordre de retourner à sa base, le bouton clignote bien « Home » clignote jusqu’à être fixe lorsque le sensor.automower_mode est à « home » mais le bouton « Auto » reste vert fixe alors qu’il devrait repassé à « none » fixe.
Dans la capture suivante, je suis passé de « Auto » à « Manu » à « Home » et on voit bien que les bouton ne repasse pas sans fond vert, ce qui devrait être le cas si l’état de sensor.automower_mode n’est pas la valeur du bouton.
Le bouton « Home » est vert fixe car le sensor.automower_mode est égal à home (normal).
Le bouton « Auto » est sans fond fixe puisque le sensor.automower_mode n’est pas égal à auto (normal).
J’ai cliqué sur le bouton « Auto » qui s’est mis à clignoté jusqu’au moment au sensor.automower_mode est passé de home à auto (normal). Le bouton « Auto » est alors passé de clignotant sans fond à fixe avec le fond vert (exactement ce que je recherche).
Le bouton « Home » est resté vert fixe alors que lorsque le sensor.automower_mode n’est plus égale à home (pas normal), il devrait passer à sans fond vert…
J’en déduis que l’ajout de triggers_update: all ne change rien ou j’ai mal utilisé cette option.
Edit :
Après un certain temps (plus d’une minute), et un rechargement de la page, le bouton « Auto » repasse sans fond vert.
La mise à jour des boutons n’est pas dynamique ?
Normalement oui, en jouant aves les outils de dev le rendu sur mon bouton :
Là clairement je sais plus trop quoi te proposer sans que ce soit un peu au « pif ».
Au cas où je mettrai une seconde couleur de fond au lieu de « none » et sur la partie « trigger_update » au pire je mettrai que « sensor.automower_mode » (pour voir).
Après ça à moins de revoir toute la « mécanique » je suis sec …
[EDIT] le délais pour le changement d’état suite au mqtt.publish est de combien de temps ?
Si ton bouton repasse sans fond vert, c’est que ton état n’est plus le même.
es tu vraiment certain que ton sensor.automower_mode est bien dans le bon état.
Et pourquoi tu as un sensor.automower_mode puisque c’est déjà dans une valeur MQTT. Tu pourrais utiliser directement cette valeur MQTT plutôt que copier cette valeur dans un sensor puis tester. J’ai du mal à saisir l’intérêt de cette manip
Oui, j’ai en parallèle l’affichage de ce sensor.autower_mode pour valider justement sa valeur. Dans la capture suivante, « Mode Caroline » correspond à sensor.autower_mode
En fait, la valeur lu dans MQTT n’est pas celle testée et affichée, j’i un mapping de fait pour « convertir » la valeur numérique en texte compréhensible par l’utilisateur.
Je vais essayer ça demain pour voir, je vous tiens au courant…
Bin justement, c’est pas tres logique. La valeur d’affichage n’a rien a voir avec celle de test. Si un jour tu veux changer ton affichage, ton test ne fonctionne plus.
D’un côté on teste et de l’autre on affiche. De plus dans mqtt tu as une valeur int qui ne peut pas du tout prêter a confusion, alors que de l’autre tu as un char qui est sujet à la casse, orthographe… par exemple Auto n’est pas auto et n’est pas AUTO non plus.
Je comprends parfaitement ce que tu as voulu faire, mais pour moi ce n’est pas logique