Un réveil sur Home assistant

Non, je n’ai pas modifié les scripts, enfin si, mais au niveau de l’indentation du script xiaomi_alarm3 :

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 :wink: 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

image

é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 :heart: sur le forum :+1:

Si tu le désire, on peux voir ensemble :people_holding_hands: ce qu’il faut faire pour améliorer le fonctionnement de ce réveil :alarm_clock:

2 « J'aime »

5 messages ont été scindés en un nouveau sujet : [CARTE] Réveil (ou activation d’automatisation)

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.

1 « J'aime »

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 :wink:

@cob94440 Attention à ne pas tout mélanger.

Ici, c’est le post du réveil pas de custom-ui

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 :+1:, 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

Si tu enlèves la condition, est-ce que cela fonctionne ?

Tu supprimes/commentes :

#  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')

Ça ne marche toujours pas…

L’automatisation d’update n’est pas déclenché quand je modifie l’heure du reveil sur la carte :

Tu mets bien a jour l’heure à travers les 2 input_select (heure/minute)?

On peut le remplacer par un truc plus sympa (et ne nécessite pas le sensor.time) :

trigger:
  platform: time
  at: input_datetime.wake_time_1

Oui :

#fichiers d'Input_select
wakehour_1:
#Représente le choix de l'heure du réveil
  name: wakehour_1
  options:
   - '00'
   - '01'
   - '02'
   - '03'
   - '04'
   - '05'
   - '06'
   - '07'
   - '08'
   - '09'
   - 10
   - 11
   - 12
   - 13
   - 14
   - 15
   - 16
   - 17
   - 18
   - 19
   - 20
   - 21
   - 22
   - 23
wakeminutes_1:
#Représente le choix des minutes du réveil
  name: wakeminutes_1
  options:
   - '00'
   - '01'
   - '02'
   - '03'
   - '04'
   - '05'
   - '06'
   - '07'
   - '08'
   - '09'
   - 10
   - 11
   - 12
   - 13
   - 14
   - 15
   - 16
   - 17
   - 18
   - 19
   - 20
   - 21
   - 22
   - 23
   - 24
   - 25
   - 26
   - 27
   - 28
   - 29
   - 30
   - 31
   - 32
   - 33
   - 34
   - 35
   - 36
   - 37
   - 38
   - 39
   - 40
   - 41
   - 42
   - 43
   - 44
   - 45
   - 46
   - 47
   - 48
   - 49
   - 50
   - 51
   - 52
   - 53
   - 54
   - 55
   - 56
   - 57
   - 58
   - 59

J’ai bien le sensor.time dans mon fichier sensor.yaml :

- platform: time_date
  display_options:
    - 'date'
    - 'time'
    - 'date_time

Et quand tu changes la valeur d’un input_select, l’ input_datetime se met à jour ?

Oui modifiant directement sur la carte l’heure et les minutes du réveil, l’état de mon input datetime se met bien à jour.

Que veux tu dire par ça alors ?

La mise a jour de cette automatisation se fait des input_select vers input_datetime. Pour l’autre sens il faut une autre automatisation…

Bah en faite, sur la capture d’écran ci-dessous, il y a un paramètre intitulé « last trigerred » qui veut dire dernier déclenchement. Je me fie à ça pour constater que l’automatisation wake_1_update_time ne se déclenche pas quand je modifie l’heure et les minutes du réveil. C’est normal ?

Ok pour ça :+1:

Non (et c’est l’automatisation la plus simple dans le cas du reveil :sweat_smile:

Les input_select sont bien nommés ainsi :
input_select.wakehour_1
input_select.wakeminutes_1
?

Utilise pour la mise au point une carte comme celle-ci :

type: entities
entities:
  - entity: input_select.wakehour_1
  - entity: input_select.wakeminutes_1
  - entity: automation.wake_1_update_time
    secondary_info: last-triggered

Merci pour ça c’est pas bête ! Du coup effectivement, depuis la carte de mise au point l’automatisation update est déclenchée lorsque je modifie les input selects :

Dans mon fichiers input_select.yaml et dans l’automation update oui ils sont bien nommées ainsi. Par contre je ne les vois pas apparaître dans la carte du réveil. C’est normal ?

Oui…
L’automatisation (qui marche du coup) sert a mettre à jour l’input_datetime utilisé par la carte.

Mais vu la carte que tu utilises, les input_select ne sont pas nécessaire car cette carte gère très bien nativement le changement horaire (grâce aux flèche)…

Du coup, il reste juste le problème de non déclenchement de l’automatisation de réveil ? (vérifie comme la première dans une carte entités, et utilise seulement la carte pas led input_select)

Non… Car définir l’heure et les minutes du réveil sur la carte de réveil ne déclenche pas l’automatisation update. Seule la carte de mise au point permet cela…