Sympa. Tu as modifié aussi le script off. J’avais cru voir une coquille qui n’arrêtait pas de suite le réveil.
Dans l’exemple il faisait sonner la gateway mais c’est possible de mettre un message sur Google home ou Alexa et lancer ensuite pourquoi pas des actions de salle de bain prépa de cafe
Mais j’avoue n’avoir pas regardé dans le détail le script…
Effectivement, les possibilités d’actions sont infinies, il suffit d’ajouter les actions que l’on souhaite à la suite de l’automation wake_1_alarm_activated.
@cob94440
Du coup, tu m’as motivé en parlant d’une coquille et voici plusieurs remarques/explications sur le fonctionnement de ce réveil :
Le script alarm_snooze qui est lancé quand tu appuis sur le bouton de la carte lovelace
éxécute en premier lieu le script alarmclock_off.
Ce script alarmclock_off est bizarre dans le sens où sa première action est d’arrêter xiaomi_alarm3 alors que celui-ci n’est pas démarré.
Ensuite, on attend 5min (300 sec) avant de démarrer xiaomi_alarm3 qui sera exécuté 180 fois (avec le délais de 6s cela fait 18min). Mais le script est arrêté en fait au bout de 5min à l’aide de l’exécution du script alarmclock_off qui lui-même arrête le script xiaomi_alarm3.
Du coup, quand l’alarme sonne :
Soit on ne fait rien et elle s’arrête au bout d’une minute car les scripts xiaomi_alarm1 et xiaomi_alarm2 sont exécutés en mode :parallel avec un max: 10 et chacun dispose d’un délai de 6 secondes.
Soit on appuie sur le bouton snooze et là, l’alarme continue de sonner jusqu’à ses 60 secondes (jusqu’à atteindre le max: 10 d’exécution des scripts), puis après 5min, l’alarme se remet à sonner suite à l’exécution de xiaomi_alarm3 pendant 5min avant de s’arrêter suite à l’exécution de alarmclock_off.
Du coup, plusieurs points me dérange pour le fonctionnement d’un réveil :
l’alarme ne sonne que 1 min
la fonction snooze ne coupe pas l’alarme instantanément
la fonction snooze relance l’alarme seulement pendant 5min puis l’arrête sans aucune intervention humaine
l’alarme ne fonctionne qu’une seule fois : le fait que l’alarme commence à sonner est conditionné par l’évènement que input_boolean.wakeactivated_1 passe à on. Or, il n’est jamais remis à off. Il manque une action de remise à off de input_boolean.wakeactivated_1 quelque part
Loin de moi de critiquer ton travail, mais comme tu débute, je souhaitais t’expliquer le fonctionnement du code qui t’a inspiré et que tu partage afin que tout le monde puisse en profiter et comprendre le comportement.
Mon commentaire n’a que le but d’être constructif et ne dois en rien t’empêcher de continuer de partager tes automatismes sur le forum
Si tu le désire, on peux voir ensemble ce qu’il faut faire pour améliorer le fonctionnement de ce réveil
Pas de soucis. En effet je débute je m’inspire a gauche a droite pour le moment et je regroupe des idées.
Je viens de jeedom où je suis resté 3 ans.
Et j’aime bcp plus home assistant.
L’idée est de partager et améliorer tout ça pour qu’on puisse proposer quelque chose de propre.
Je regarderai demain tes modifs.
Et j’essaie de faire une présentation de où j’en suis.
C’est le but du forum de s’apporter. Je cherche sur youtube et les github de l’inspiration en cherchant ensuite a comprendre pour essayer ensuite de faire par moi même.
Attention, je n’ai apporté aucunes modifications dans les automatismes (automation/script).
Je te propose seulement mon aide si tu veux améliorer le fonctionnement.
Fait le point du fonctionnement et dis nous ce que tu souhaite améliorer (si tu souhaite améliorer quelque chose car le fonctionnement actuel t’es peut être suffisant).
Concernant Youtube, n’hésite pas à créer des posts si dans des vidéos tu souhaite approfondir/comprendre
Si tu veux bien éditer ton commentaire pour ne garder que la partie du réveil, l’autre partie je l’ai basculé vers le bon post, j’ai commencé à t’y répondre
Désolé je n’ai pas la possibilité de répondre dans le post indiqué. Le bouton « répondre » n’apparaît pas…
Voici les automatisations que j’utilise :
- id: 'wake_1_update_time'
#nouvelle par rapport au post 1
# Automatisation qui met à jour le input_datetime 'wake_time_1' représentant l'heure du reveil
# en fonction des input_select représentants les heures et les minutes
alias: wake_1_update_time
trigger:
- platform: state
entity_id: input_select.wakehour_1
- platform: state
entity_id: input_select.wakeminutes_1
action:
- service: input_datetime.set_datetime
entity_id: input_datetime.wake_time_1
data_template:
time: '{{states("input_select.wakehour_1")}}:{{states("input_select.wakeminutes_1")}}:00'
- id: 'wake_1_detect_time' #modifiée par rapport au post 1 pour la partie déclenchement (trigger)
# Automatisation qui s'enclenche quand l'heure du système est égale à l'heure de l'input_datetime.wake_time_1
alias: Wake 1
trigger:
platform: template
value_template: "{{states('sensor.time') == (state_attr('input_datetime.wake_time_1','timestamp') | int | timestamp_custom('%H:%M', False))}}"
condition:
condition: template
value_template: >
{% set today = 'input_boolean.wakeweekday_' ~ now().strftime("%a") | lower ~ '_1' %}
{{ is_state('input_boolean.wakestatus_1', 'on') and is_state(today, 'on') }}
action:
service: input_boolean.turn_on
entity_id: input_boolean.wakeactivated_1
- id: 'wake_1_alarm_activated' #inchangée par rapport au post 1
alias: 'Wake 1 Activated'
trigger:
platform: state
entity_id: input_boolean.wakeactivated_1
from: 'off'
to: 'on'
action:
service: script.turn_on
entity_id: script.music1