/ Home Assistant

Modifier son alarme Home Assistant via Tasker

On a deja vu comment faire une alarme sous Home Assistant, petite piqure de rappel :

on déclare nos sliders :

 input_slider:
  alarmhour:
    name: Heure
    icon: mdi:timer
    initial: 6
    min: 0
    max: 23
    step: 1
  alarmminutes:
    name: Minutes
    icon: mdi:timer
    initial: 35
    min: 0
    max: 59
    step: 5

on ajoute le group alarmclock :

   alarmclock:
    name: Wake Me Up
    entities:
      - sensor.alarm_time
      - input_slider.alarmhour
      - input_slider.alarmminutes
      - input_boolean.alarmweekday
      - input_boolean.alarmweekon

on ajoute notre sensor :

  • platform: template
    sensors:
    alarm_time:
    friendly_name: 'Time'
    value_template: '{{ "%0.02d:%0.02d" | format(states("input_slider.alarmhour") | int, states("input_slider.alarmminutes") | int) }}'

Plus qu'à faire notre automation de réveil matin :
   - alias: "reveil matin Aurore Semaine"
    trigger:
      - platform: time
        minutes: '/1'
        seconds: 0
    condition:
      - condition: state
        entity_id: input_boolean.automa
        state: 'on'
      - condition: state
        entity_id: input_boolean.alarmweekon
        state: 'on'
      - condition: state
        entity_id: input_boolean.alarmweekday
        state: 'on'
      - condition: state
        entity_id: calendar.jours_feries_en_france
        state: 'off'
      - condition: state
        entity_id: calendar.rtt
        state: 'off'
      - condition: time
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
      - condition: template
        value_template: '{{ ((now().strftime("%s") | int + 300) | timestamp_custom("%H:%M") == states.sensor.alarm_time.state) }}'

Un peu d'explication :

input_boolean.automa est un input_boolean pour desactiver les automations (en cas de besoin), cet élément n'est pas necessaire au bon fonctionnement de l'alarme.

input_boolean.alarmweekon est un input_boolean pour activer/desactiver l'alarme.

calendar.jours_feries_en_france cela correspond à mon calendrier des jours fériés en france (si le jour est férié l'etat du calendrier est on.

calendar.rtt cela correspond à mon calendrier personnel dont je n'extrait que les elements marqués RTT (car les RTT ne sont pas des jours fériés).

input_boolean.alarmweekday est un input_boolean pour positionner le reveil les jours de la semaine, s'il est desactivé le reveil ne fonctionnera que le weekend, s'il est activé il ne fonctionne que la semaine.

((now().strftime("%s") | int + 300) | timestamp_custom("%H:%M") cela permet de déclencher le scenario 5 minutes avant l'heure de réveil programmée, pour allumer la lumière doucement.

Passons au vif du sujet

l'intégration avec Tasker :

On aura besoin d'installer le plugin AutoAlarm gratuit sur le PlayStore.
De plus l'utilisation d'un broker MQTT est nécessaire (pour ma part j'utilise Mosquitto server)

Tout d'abord pour la partie "Tâches" :
on ajoute en premiere tâche 'AutoAlarm' (pas de configuration necessaire).
Ensuite on se créé 2 taches (une pour le heures l'autre pour les minutes).

de type Reseau -> POST HTTP:
on renseigne le serveur port

https://monserveur.duckdns.org

on renseigne le chemin (Path):

/api/services/mqtt/publish?api_password=MONMOTDEPASSE

on configure la partie Données / Fichier (DATA/FILE):
{ "topic":"setHour","payload":"%hour" }

et enfin Type de contenu:
application/json

On refait la meme chose pour les minutes à l'exceptiond e la partie Données:
{ "topic":"setMinutes","payload":"%minute" }

Une fois ces tâches rédigées, on peut passer au profil à crééer.

Pour ce faire, sur Tasker, on choisi Evenement > Systeme > Intent Reçu champs Action on met android.app.action.NEXT_ALARM_CLOCK_CHANGED

Cet événement correspond au changement d'heure de réveil sur Android.
Quand on changera l'heure de réveil, Tasker publiera via l'api de Home Assistant, sur MQTT les minutes et heures de l'alarme provenant d'Android.

Pour finaliser cela on ajoutera 2 automations :

   - alias: "Set alarmtime_hour"
    trigger:
     - platform: mqtt
       topic: "setHour"
    action:
      - service: input_slider.select_value
        data_template:
          entity_id: input_slider.alarmhour
          value: '{{ trigger.payload}}'
  - alias: Set alarmtime_minutes
    trigger:
     - platform: mqtt
       topic: "setMinutes"
    action:
      - service: input_slider.select_value
        data_template:
          entity_id: input_slider.alarmminutes
          value: '{{ trigger.payload}}'

On peut dès lors tester, quand on modifie l'heure du réveil l'heure est bien modifiée sous Home Assistant.

Modifier son alarme Home Assistant via Tasker
Share this