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…
C’est normal ça…On va reprendre depuis le depuis avec ce que tu as en place :
Ce que tu as :
-
1x
input_datetime
représentant l’heure de déclenchement de l’alarme (input_datetime.wake_time_1) -
1x
input_select
représentant les heures del'input_datetime
(input_select.wakehour_1) -
1x
input_select
représentant les minutes de l’input_datetime (input_select.wakeminutes_1) -
7x
input_boolean
représentants les jours de la semaine pour le déclenchement de l’alarme (input_boolean.wakeweekday_ [sun,mon,tue,wed,thu,fri,sat] _1) -
1x
input_boolean
représentant l’activation de l’alarme (input_boolean.wakestatus_1) -
1x automatisation de mise à jour de l’input_datetime (automation.wake_1_update_time)
-
1x automatisation déclenchée lorsque l’heure locale est égale à la valeur de l’input_datetime (automation.wake_1_detect_time)
-
1x automatisation qui est déclenchée par automation.wake_1_detect_time (automation.wake_1_alarm_activated)
des scripts pour faire tourner en boucle l’alarme ? Si oui partage les (peut être réalisé directement dans un seul script avec une boucle until
par exemple)
Fini pour le résumé des entités…
Maintenant concernant :
C’est normal car tu as seulement une automatisation (automation.wake_1_update_time) qui met à jour dans le sens [ input_select → input_datetime ]. Il te faudrait l’équivalent dans l’autre sens : [ input_datetime → input_select ].
On peut y arriver en ajoutant quelques lignes à automation.wake_1_update_time :
automation:
- 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
- platform: state
entity_id: input_datetime.wake_time_1
action:
- choose:
# Si le déclencheur est l'input_datetime
- conditions:
- condition: template
value_template: "{{ trigger.entity_id.split('.')[0] == 'input_datetime' }}"
sequence:
- service: input_select.select_option
entity_id: input_select.wakehour_1
data:
option: "{{trigger.to_state.state.split(':')[0]}}"
- service: input_select.select_option
entity_id: input_select.wakeminutes_1
data:
option: "{{trigger.to_state.state.split(':')[1]}}"
# Si le déclencheur est l'un des input_select
- conditions:
- condition: template
value_template: "{{ trigger.entity_id.split('.')[0] == 'input_select' }}"
sequence:
- 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'
Mais comme tu utilises la carte que j’ai faite, tu n’as pas besoin des input_selects (qui ne sont la que pour régler l’alarme) car la carte permet l’édition de l’heure facilement (contrairement à la carte de base de HA).
Du coup, qu’est-ce qui ne fonctionne pas ?
Bonjour, super boulot. J’ai vu la carte aussi et c’est juste top.
Petite question, actuellement je me réveille avec une routine Alexa sur mon enceinte echo qui me met la musique. Quand je bosse pas un jour de semaine ou suis en télétravail, je l’éteins et en active une autre plus tard…
Je souhaiterais gérer cela de HA. Est il possible de faire quelque chose de similaire, mais d’activer ou désactiver une routine ?
J’ai vu qu’ont pouvez récupérer des « sévices » et lancer des routines. Mais pas avec tous. Par exemple input_bookean, je le vois mais je peux rien faire avec…si j’arrivais à faire 2h de réveil différentes en fonction de télétravail ou présentiel ça serait nickel !!
Et qui sait, si je pousse le bouchon plus loin, si je met télétravail dans mon agenda Google, que ça active le réveil plus tard ?
Bon, j’ai réglé mes problèmes d’alexa.
Par contre, j’ai pas compris dans le fonctionnement du réveil, comment le wakestatus_1 se remet à 0 ?
Il ne se remet pas à zéro et c’est un manque que j’ai signalé…
En prenant exemple sur le code fournit du 1er post, voici pour ceux qui veulent un code fonctionnel (@barto_95 ) :
##############################
#SENSOR
##############################
sensor:
- platform: time_date
#Création de 1 entité représentant l'heure (HH:MM )
display_options:
- 'time'
##############################
#INPUT_BOOLEAN
##############################
input_boolean:
reveil_1:
#Représente si le réveil est activé
name: Réveil 1 (Activation)
icon: mdi:alarm
reveil_declenche_1:
#Représente si le réveil à déjà sonné dans la journée (empêche le déclenchement toutes les minutes après l'heure de réveil)
name: Le réveil a déjà sonné
icon: mdi:alarm
reveil_mon_1:
#Représente le jour : Lundi
name: Lundi
icon: mdi:calendar
reveil_tue_1:
#Représente le jour : Mardi
name: Mardi
icon: mdi:calendar
reveil_wed_1:
#Représente le jour : Mercredi
name: Mercredi
icon: mdi:calendar
reveil_thu_1:
#Représente le jour : Jeudi
name: Jeudi
icon: mdi:calendar
reveil_fri_1:
#Représente le jour : Vendredi
name: Vendredi
icon: mdi:calendar
reveil_sat_1:
#Représente le jour : Samedi
name: Samedi
icon: mdi:calendar
reveil_sun_1:
#Représente le jour : Dimanche
name: Dimanche
icon: mdi:calendar
##############################
#INPUT_DATETIME
##############################
input_datetime:
reveil_heure_1:
#Représente l'heure du réveil 1
name: Réveil 1
has_time: true
##############################
#AUTOMATION
##############################
automation:
- id: 'reveil_1'
alias: reveil_1
description: "Se déclenche à l'heure définie par l'entité input_datetime.reveil_heure_1"
trigger:
- platform: state
#Déclenchement de l'automatisation toutes les minutes (permet de s'assuser que le réveil va sonner même si HA était indisponible à l'heure du réveil (reboot principalement))
entity_id: sensor.time
- platform: state
#Déclenchement lors du changement de l'heure du réveil (permet de reprogrammer le réveil)
entity_id: input_datetime.reveil_heure_1
condition:
- condition: template
value_template: >-
{% set numero = '1' %} {# Représente le numéro du réveil #}
{% set today = 'input_boolean.reveil_' ~now().strftime("%a") | lower ~'_' ~numero %} {# Récupère le nom court de la semaine en anglais et le concatène pour formé le texte <input_boolean.reveil_XXX_1> où XXX peut prendre les valeurs [mon,tue,wed,thu,fri,sat,sun] #}
{{ is_state(('input_boolean.reveil_' ~numero), 'on') and is_state(today, 'on') }} {# Si le réveil est ACTIF et que le booléen du jour est à Vrai la condition est remplie #}
action:
- choose:
- conditions:
- condition: template
#Si l'heure actuelle est inférieure à l'heure du réveil :
#Et si le réveil à déjà sonné (input_boolean.reveil_declenche_1)
#Remise à Faux de l'entité input_boolean.reveil_declenche_1
value_template: >-
{% set numero = '1' %} {# Représente le numéro du réveil #}
{% set heure_du_reveil = strptime(states('input_datetime.reveil_heure_1'),'%H:%M:%S').strftime('%H:%M:%S') %} {# Conversion de l'input_datetime en objet DATETIME au format HH:MM:SS #}
{% set heure_actuelle = strptime(states('sensor.time'),'%H:%M').strftime('%H:%M:%S')%} {# Conversion de l'heure actuelle en objet DATETIME au format HH:MM:SS #}
{% if heure_actuelle < heure_du_reveil %}
{% if is_state(('input_boolean.reveil_declenche_' ~numero), 'on') %}
true
{% else %}
false
{% endif %}
{% else %}
false
{% endif %}
sequence:
- service: persistent_notification.create
data:
message: >
Déjà réveillé !
title: DEBUG Automatisation
notification_id: '{{ (range(1, 9999)|random) }}'
- service: input_boolean.turn_off
entity_id: input_boolean.reveil_declenche_1
- conditions:
- condition: template
#Si l'heure actuelle est égale ou supérieure à l'heure du réveil :
#Et si le réveil n'a pas déjà sonné (input_boolean.reveil_declenche_1)
#Mise à Vrai de l'entité input_boolean.reveil_declenche_1
#<AJOUTER LES ACTIONS DU REVEIL>
#<AJOUTER LES ACTIONS DU REVEIL>
#<AJOUTER LES ACTIONS DU REVEIL>
value_template: >-
{% set numero = '1' %} {# Représente le numéro du réveil #}
{% set heure_du_reveil = strptime(states('input_datetime.reveil_heure_1'),'%H:%M:%S').strftime('%H:%M:%S') %} {# Conversion de l'input_datetime en objet DATETIME au format HH:MM:SS #}
{% set heure_actuelle = strptime(states('sensor.time'),'%H:%M').strftime('%H:%M:%S')%} {# Conversion de l'heure actuelle en objet DATETIME au format HH:MM:SS #}
{% if heure_actuelle >= heure_du_reveil %}
{% if is_state(('input_boolean.reveil_declenche_' ~numero), 'off') %}
true
{% else %}
false
{% endif %}
{% else %}
false
{% endif %}
sequence:
- service: persistent_notification.create
data:
message: >
C'est l'heure !
title: DEBUG Automatisation - Fired
notification_id: '{{ (range(1, 9999)|random) }}'
- service: input_boolean.turn_on
entity_id: input_boolean.reveil_declenche_1
# - Action supplémentaire
# - Action supplémentaire
# - Action supplémentaire
Merci je vais tester ce soir
Oui là :
https://forum.hacf.fr/t/carte-reveil-ou-activation-dautomatisation/848
Il y a plusieurs version parcours le fil et demande de l’aide la bas…
j’ai essayer justement mais le nom de entity ne corresponde pas et perso j’arrive pas a comprendre lequel utiliser et ou … pour la partie des jours pas de pb mais la partie du haut non …
Voici ma contribution à cette problématique de réveil
J’ai souhaité être réveillé en musique en fonction d’un agenda de travail. Dans l’agenda gmail en question, j’ai planifié un évènement récurrent de travail , commençant à 8h ou à 7h
=> je veux que la radio sur le google mini s’allume 1h avant l’event.
Voila le code
alias: Radio_si_Travail
description: ""
trigger:
- platform: calendar
event: start
offset: "-1:00:0"
entity_id: calendar.xxxxxxxxxxx_gmail_com
condition:
- condition: state
entity_id: calendar.xxxxxxxxxxxxx_gmail_com
attribute: message
state: Travail
action:
- service: media_player.play_media
target:
entity_id: media_player.chambre_principale
data:
media_content_id: media-source://radio_browser/003baf55-9ac9-4352-bceb-375ee4203133
media_content_type: audio/aac
metadata:
title: France Info
thumbnail: >-
https://www.francetvinfo.fr/assets/common/images/pwa/launcher-120x120-2e45ada1.png
media_class: music
children_media_class: null
navigateIds:
- {}
- media_content_type: app
media_content_id: media-source://radio_browser
- media_content_type: music
media_content_id: media-source://radio_browser/country/FR
mode: single
Le trigger ne fonctionne qu’une fois par jour.
Bonjour
Tout d’abord, merci @cob94440 @Clemalex pour ce fil, très instructif.
J’essaye de reproduire ce réveil mais avec un petit bémol, j’ai une erreur au niveau de
Entité non disponible: sensor.time.
Comment puis-je corriger cela ? Je ne vois pas trace de celle-ci dans les « outils de développement »
De plus, j’ai remplacé
service: xiaomi_aqara.play_ringtone par media_player.bureau_gauche (haut parleur connecté)
En changeant également l'adresse MAC
et
script.xiaomi_alarm2 par script.reveil1_alarm2 (idem pour les autres alarmes)
Est-ce correct ? Dois-je modifier autre chose ?
Merci
PS
j’ai mis cela dans /config/packages/reveil/reveil1.yaml
et dans /config/configuration.yaml, il y a
homeassistant:
packages: !include_dir_named packages/
EDIT
je viens d’ajouter
- platform: time_date
display_options:
- 'time'
- 'date'
- 'date_time'
- 'date_time_utc'
- 'date_time_iso'
- 'time_date'
- 'time_utc'
- 'beat'
dans le fichier /config/configuration.yaml, et c’est bon, j’obtiens l’heure. Mais impossible de modifier les données sur la carte
idem pour les autres entités.
Il semble manquait la configuration.
Elle a bien était chargée à un moment d’où la trace des entités mais elles ne sont plus chargées apparemment.
Merci. Je ne parviens pas à trouver, pourquoi ?
Comment puis-je corriger cela, à ton avis ?
#Par rapport au post 1 de @cob94440
# sensor.wake_time_1 est remplacé par input_datetime.wake_time_1 pour la définition de l'heure du réveil
# input_number.wakehour_1 est remplacé par input_select.wakehour_1 pour la définition de l'heure
# input_number.wakeminutes_1 est remplacé par input_select.wakeminutes_1 pour la définition des minutes
#Input_booleans (inchangés par rapport au post 1)
input_boolean:
wakeactivated_1:
name: Alarm 1 Activated
icon: mdi:alarm
wakestatus_1:
name: Alarm 1
icon: mdi:alarm
wakeweekday_sun_1:
name: Sunday
icon: mdi:calendar
wakeweekday_mon_1:
name: Monday
icon: mdi:calendar
wakeweekday_tue_1:
name: Tuesday
icon: mdi:calendar
wakeweekday_wed_1:
name: Wednesday
icon: mdi:calendar
wakeweekday_thu_1:
name: Thursday
icon: mdi:calendar
wakeweekday_fri_1:
name: Friday
icon: mdi:calendar
wakeweekday_sat_1:
name: Saturday
icon: mdi:calendar
#Input_datetime (nouveau par rapport au post 1)
input_datetime:
wake_time_1:
#Représente l'heure du réveil
name: wake_time_1
# has_date: false
has_time: true
#Input_select (nouveau par rapport au post 1)
input_select:
wakehour_1:
#Représente le choix de l'heure
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
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
#Scripts (inchangés par rapport au post 1)
script:
reveil1_alarm1:
sequence:
- data:
gw_mac: xxxxx
ringtone_id: 13
ringtone_vol: 50
service: media_player.hp_bureau_gauche
- delay:
seconds: 6
- service: script.reveil1_alarm2
mode: parallel
max: 10
reveil1_alarm2:
sequence:
- data:
gw_mac: xxxx
ringtone_id: 13
ringtone_vol: 75
service: media_player.hp_bureau_gauche
- delay:
seconds: 6
- service: script.reveil1_alarm1
mode: parallel
max: 10
reveil1_alarm3:
sequence:
- repeat:
count: 180
sequence:
- data:
gw_mac: xxxxx
ringtone_id: 13
ringtone_vol: 40
service: media_player.hp_bureau_gauche
- delay:
seconds: 6
mode: restart
alarm_snooze:
alias: Alarm was Snooze
sequence:
- service: script.alarmclock_off
- delay:
seconds: 300
- service: script.turn_on
entity_id:
- script.reveil1_alarm3
- delay:
seconds: 300
- service: script.turn_on
entity_id:
- script.alarmclock_off
alarmclock_off:
alias: Alarm was disarmed
sequence:
- service: script.turn_off
data:
entity_id:
- script.reveil1_alarm3
automation:
- 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.reveil1_alarm1
Est-ce que le fait de mettre le code pour sensor.time dans /config/configuration.yaml et le reste dans /config/packages/reveil, pourrait poser un problème ?
Je viens de faire une bétise, je pense. Croyant pouvoir recréer les entités, automatisations, je les ai effacés et je ne parviens plus çà les récupérer. Puis-je corriger le souci ? merci
EDIT:
Le plus simple n’est-ce pas de renommer les entités pour que HA les recréer avec un autre nom ? Mais, c’est dommage d’en arriver là.
EDIT2: je suis parvenu à effacer toutes les entités créées en supprimant card-mod, pour pouvoir recommencer à zéro.
Bonjour
Dans le message : Un réveil sur Home assistant - #38 par Clemalex
Lorsque tu parles @Clemalex d’ajouter les actions, c’est quoi exactement ?
#<AJOUTER LES ACTIONS DU REVEIL>
#<AJOUTER LES ACTIONS DU REVEIL>
#<AJOUTER LES ACTIONS DU REVEIL>
et
# - Action supplémentaire
# - Action supplémentaire
# - Action supplémentaire
c’est cela ,
script:
xiaomi_alarm1:
sequence:
- data:
gw_mac: 0123456789
ringtone_id: 13
ringtone_vol: 50
service: xiaomi_aqara.play_ringtone
- delay:
seconds: 6
- service: script.xiaomi_alarm2
mode: parallel
max: 10
xiaomi_alarm2:
sequence:
- data:
gw_mac: 0123456789
ringtone_id: 13
ringtone_vol: 75
service: xiaomi_aqara.play_ringtone
- delay:
seconds: 6
- service: script.xiaomi_alarm1
mode: parallel
max: 10
xiaomi_alarm3:
sequence:
- repeat:
count: 180
sequence:
- data:
gw_mac: 0123456789
ringtone_id: 13
ringtone_vol: 40
service: xiaomi_aqara.play_ringtone
- delay:
seconds: 6
mode: restart
alarm_snooze:
alias: Alarm was Snooze
sequence:
- service: script.alarmclock_off
- delay:
seconds: 300
- service: script.turn_on
entity_id:
- script.xiaomi_alarm3
- delay:
seconds: 300
- service: script.turn_on
entity_id:
- script.alarmclock_off
alarmclock_off:
alias: Alarm was disarmed
sequence:
- service: script.turn_off
data:
entity_id:
- script.xiaomi_alarm3
Un très grand merci
Ça doit être un copier/merder.
Le code posté dans le message est (était) fonctionnel en l’état…
bonjour,
j’essai de reproduire votre réveil, mais je m’y perd un peu, est il possible de remettre les derniers, code et code de carte. Merci, a priori j’ai un souci avec le sensor.time, je le met dans mes sensors mais il ne remonte pas
merci pour votre aide
Le mien ressemble à ceci
il est très simple
il allume ma lumiere et me met la radio sur un google home
je peux Link si vous voulez
Bonjour, recent sur le site je commence a m’intéresser a Home Assistant, ne maitrisant pas completement tous les concepts, peux-tu me partager ton code si tu veux bien, ca participera à mon apprentissage. Je te remercie.