J’ai un robot tondeuse et je cherche à faire une télécommande sur HA.
J’ai actuellement 3 boutons « Home », « Manuel » & « Auto » qui permettent d’interagir avec le robot via un envoi de message MQTT.
Et j’aimerai que les boutons aient une couleur en fonction de leur états :
J’ai vu dans ce post Garage Ouvre Toi! - #2 par Argonaute que l’on pouvait avoir des state différents en fonction d’une value mais je n’arrive pas à l’intégrer à un « switch » …
Comment je dois m’y prendre ?
J’ai trouvé pour le changement de couleur de l’icon avec ce code :
Code avec changement de couleur en fonction de l'état
- type: horizontal-stack
cards:
- type: custom:button-card
icon: mdi:home
name: Home
entity: sensor.automower_mode
tap_action:
action: call-service
service: mqtt.publish
service_data:
payload: 0F812C0003
topic: Automower/AM_G2/Cmd/Rawcmd
state:
- value: home
color: green
- type: custom:button-card
icon: mdi:gesture-tap
name: Manuel
entity: sensor.automower_mode
tap_action:
action: call-service
service: mqtt.publish
service_data:
payload: 0F812C0000
topic: Automower/AM_G2/Cmd/Rawcmd
state:
- value: manu
color: green
- type: custom:button-card
icon: mdi:refresh-auto
name: Auto
entity: sensor.automower_mode
tap_action:
action: call-service
service: mqtt.publish
service_data:
payload: 0F812C0001
topic: Automower/AM_G2/Cmd/Rawcmd
state:
- value: auto
color: green
Ce qui donne :
Maintenant je séche sur comment faire clignoter le bouton sur lequel j’ai appuyé le temps que le robot atteigne cet état (ou plutôt quesensor.automower_moderenvoi l’état demandéhome, manuouauto)
Si tu n’as pas une info quelque part qui conserve l’état actuel, l’état cible, et l’état réel ça va être compliqué. En tout cas, tu ne peux pas juste t’en sortir avec les boutons : une fois appuyé l’état du bouton est actif
Comment je peux faire pour que mon bouton « sauvegarde » son appui quelque part ?
En gros mon algo serait celui-ci :
Mon bouton est « blanc » donc pas dans cet état (ex : le sensor.automower_mode n’a pas sa value à home donc le bouton « Home » est blanc.)
J’appuie sur ce bouton « Home », il « sauvegarde » le fait que j’ai appuyé sur ce bouton et fait clignoter le bouton « Home », jusqu’à ce que le sensor.automower_mode ait la valeur home et à ce moment, le bouton « Home » devient vert fixe.
Ce que je ne voit pas, c’est comment « sauvegarder » cet appui sur le bouton « Home »…
Mes boutons « Home » et « Auto » clignoteront en permanence si l’état est à auto…
Ce que je cherche à faire, c’est que le bouton sur lequel j’appuie se mette à clignoter uniquement à partir du moment où j’appuie dessus jusqu’au moment où l’état du sensor arrive à la « valeur » du bouton.
Les boutons ne doivent pas clignoter tant que je n’appuie pas dessus. C’est un état temporaire qui indique à l’utilisateur « J’ai pris en compte ta demande de changement d’état ».
Il faudrait que je crée une variable demande_home_en_cours qui passerait à true lors d’un appuie de bouton sur le bouton home et qui repasserait à false une fois l’état de sensor.automower_mode passé à home.
Avec cette demande_home_en_cours, je pourrais faire clignoter le bouton « Home » avec le code de @Herbs
Ben non… si tu es auto, la 1ere partie du IF n’est pas valable donc fixe…
Ce qu’il faut bien faire c’est définir uniquement les cas ou ça clignote …comme ça par défaut c’est fixe.
Fait ton tableau d’états
J’ai essayé ce code avec l’état du sensor.automower_mode à auto et j’ai bien le bouton « Home » qui clignote rouge en permanence même si je n’appuie pas dessus et le bouton « Auto » qui reste vert fixe
Evident…
Là tu demande à ne rien faire quand c’est à l’état home mais sinon ça clignote (donc tout ce qui n’est pas home clignote). Il n’y a même pas de comparaison avec le status MQTT du robot …
il y a moyen de faire simple :
Si j’ai bien compris 3 états dans MQTT et 3 boutons. Quand le bouton X est activé et que le MQTT n'est pas à X => clignotement sinon si bouton = même valeur que MQTT (donc activé) => couleur sinon rien
Moi j’irai sur 3 switch (affiché en boutons) comme ça tu peux suivre les états. Par contre il faudrait y adjoindre une exclusion sauf forme d’une automatisation pour n’avoir qu’un switch on à la fois
La couleur de l’icône principal correspond a l’état du input_select : soit rouge pour ON, vert pour AUTO et bleu pour OFF.
Et chaque icône d’action, change de couleur aussi en fonction de l’état du input_select.
D’ailleurs dans ce cas, on pourrait carrément supprimer l’affichage de l’icône principe car on voit bien celui qui est actif.
Après les goûts et les couleurs … il est bien entendu possible de changer les icônes, les couleurs…