J’ai un minipc (Ubuntu) avec un dongle zigbee sur lequel j’ai une VM sous Libvirt dans laquelle tourne HAos.
Tous les 3 jours je pétris une pâte à pain pendant 4 minutes.
Le robot qui pétrit est connecté sur une prise connectée nommée prise_petrin dans Appareils Zigbee2MQTT.
J’aimerais ajouter un bouton associé à un décompte dans une section de la map d’accueil.
Si possible, on pourrait aussi déclencher le timer (ou l’arreter) via un appui sur le bouton de la prise connectée.
J’ai testé des tutaux que j’ai récupéré sur ce forum, mais je n’arrive pas à faire fonctionner l’ensemble.
Je ne sais pas ce que tu as tenté jusque là, mais une façon de faire qui devrait être assez robuste c’est :
Créer un minuteur dans « Paramètres>Appareils et Services > Entrées »
Tu le nommes comme tu veux et tu le définis à 4 minutes.
Puis sur ton tableau de bord tu peux ajouter une carte de type tuile avec comme entité ton minuteur, puis tu ajoutes l’interaction l’appui long (pour éviter les clics par erreur) que tu règles sur « executer une action » et dans l’action tu mets « timer.start » et tu choisis ton minuteur.
Ensuite tu vas dans les automatisations et tu ajoutes une nouvelle automatisation qui sera déclenchée par un « évènement manuel ». Tu mets en evènement timer.finished et en données entity_id: timer.ton_minuteur
Et avec comme action l’extinction de la prise.
Du coup tu aura un bouton qui affichera l’état et la durée restante de ton minuteur.
En revanche activer ça quand tu utilises le bouton sur le prise c’est une autre histoire… car le bouton sur la prise je pense est directement connecté au relai de la prise… je ne pense pas qu’il soit possible de récupérer le clic dans HA… (ça dépend de la prise en question, mais je n’en connais pas qui puisse faire ça… )
Tu peux faire une automatisation qui prenne comme trigger l’état de ta prise connectée.
Si lors de l’appui sur le bouton (que ce soit un bouton physique ou virtuel), la prise connectée passe de Off à On, tu peux créer un trigger a partir de cette transition.
Sur cette information, tu peux déclencher dans une automatisation ton timer « dans le pétrin » de 4 min (action timer.start).
Tu peux comme indiqué utiliser ce timer dans ton dashboard. Il t’indiquera le temps de pétrissage restant.
Lorsque le timer se termine il génère un event « fin de timer ». Il te suffit d’avoir une autre automatisation qui détecte cet event. Tu peux alors ajouter autant d’actions de « fin de pétrissage » que tu veux, comme couper la prise pour la repasser à Off, générer une notification « Pétrissage terminé » sur ton téléphone, ou une annonce sur tes enceintes connectées, etc…
Malheureusement je suis largué dès le deuxième point:
Puis sur ton tableau de bord tu peux ajouter une carte de type tuile avec comme entité ton minuteur, puis tu ajoutes l’interaction l’appui long (pour éviter les clics par erreur) que tu règles sur « executer une action » et dans l’action tu mets « timer.start » et tu choisis ton minuteur.
@AlexHass est parti du principe que tu voulais un bouton sur ton tableau de bord (ton dashboard).
Mais peut être que tu parles d’un bouton physique… Auquel cas les réponses seront plus une automatisation qu’un dashboard…
En tout cas pour parler le même langage, peut être que ça vaut le coup de faire un tour là pour lire quelques articles:
Pour l’instant, ton timer, c’est une sorte de minuterie, que tu peux lancer, arreter, redémarer, et qui va déclencher un évenement lorsquelle se termine (que HA pourra interpreter)
Tu peux créer un bouton virtuel ou utiliser un bouton physique pour « lancer » cette minuterie, suivant ce que tu fais il te faudra:
specifier dans l’affichage ce que tu veux faire à l’appui d’un bouton virtuel dans le tableau de bord
créer une automatisation pour que ton bouton physique puisse lancer la minuterie
tu peux aussi lancer la minuterie lorsque le pétrin démarre (soit parce que tu détecte que la puissance change, soit parce que tu met la prise sur ‹ on ›) => pour ça il te faut une automatisation.
l’état de la minuterie (le timer) peut être affiché dans le dashboard
la fin de la minuterie peut déclencher des effets si tu t’en sert dans une automatisation (éteindre la prise, envoyer une notification, alumer une lumière, etc…)
je m’en suis sorti. Encore merci de m’avoir aidé à démarrer
Ma plus grosse erreur était de ne pas déclarer le fichiers automations.yaml dans configuration.yaml.
J’ai été trompé par le fait que quand j’ajoutais une automatisation via l’interface graphique, le fichier automations.yaml était bien modifié.
Voici du coup ma configuration fonctionnelle (im manque la configuration du bouton, savez vous est le code ?
configuration.yaml:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
automation: !include automations.yaml
automation.yaml:
- id: '1764617247413'
alias: fin_petrissage
description: Désactivation de la prise à la fin du timer
triggers:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.petrissage
conditions: []
actions:
- service: switch.turn_off
target:
entity_id: switch.prise_petrin
mode: single
- id: '1764617821794'
alias: debut_petrissage
description: Activation de la prise au démarrage du timer (via State)
triggers:
- platform: state
entity_id: timer.petrissage
from: idle
to: active
conditions: []
actions:
- service: switch.turn_on
target:
entity_id: switch.prise_petrin
mode: single
- id: '1764617821795'
alias: declenchement_physique_petrissage
description: Lance le timer si la prise est activée manuellement
triggers:
- entity_id: switch.prise_petrin
from: 'off'
to: 'on'
trigger: state
conditions:
- condition: state
entity_id: timer.petrissage
state: idle
actions:
- action: script.demarrer_petrissage
metadata: {}
data: {}
mode: single