Récupérer le statut de votre alarme diagral sur Home assistant

Après avoir lu ce sujet sur le forum, j’avais besoin de récupérer le statut de mon alarme pour piloter mon chauffage et mes caméras de surveillances.

Pour résumer :

Pour récupérer le statut de l’alarme j’utilise les notifications de l’application Android (e-ONE).
A réception d’une notification, j’envoie un mail sur une adresse dédiée, puis un « sensor » home assistant imap_email_content change de value_template en foction du sujet du mail.

La procédures :

A - Sur un vieux téléphone Android dédié :
1- Installer l’application e-ONE de DIAGRAL et se connecter à votre compte DIAGRAL,

2 - Installer l’application MacroDroid et créer un macro pour envoyer un email à chaque notification.


3 - Créer une macro pour allumer l’écran toute les heures,

4 - Désactiver l’optimisation de la batterie, toutes les options de mise en veille du téléphone, verrouillage… pour que le téléphone soit opérationnel 24H/24,

5 - Installer l’application Home Assistant Companion pour piloter la recharge du mobile via Home Assistant (avec le « sensor » du type sensor.tablette_maison_battery_level) et une prise connectée.

B - Sur Home Assistant :

1 - Créer un « sensor » dans /config/configuration.yaml pour récupérer les e-mails envoyés par l’application MacroDroid,

- platform: imap_email_content
    server:  imap.free.fr
    name: diagral
    port: 993
    username: xxxx@free.fr
    password: xxxxxx
    senders:
      - xxxx@free.fr
    value_template: >-
      {% if 'présence' in subject %}
        presence
      {% elif 'Mise à l' in subject %}
        arret
      {% elif 'marche' in subject %}
        marche
      {% elif 'intrusion' in subject %}
        intrusion
      {% endif %}

puis un autre sensor pour forcer le statut de l’alarme manuellement en cas de plantage ou retard dans l’envoi d’une notification,

puis les automatisations correspondantes,

alias: Input select > Alarme Arrêt
description: ""
trigger:
  - platform: state
    entity_id:
      - input_select.forcer_statut_alarme_diagral
    to: Arrêt
condition: []
action:
  - service: notify.free
    data:
      title: "Mise à l'arrêt de l'alarme /// via home assistant "
      message: Mail automatique pour status DIAGRAL > Forcer le statut
  - service: input_select.select_option
    data:
      option: "**Choisir**"
    target:
      entity_id: input_select.forcer_statut_alarme_diagral
mode: single

A dupliquer avec les autres modes.

2 - Rebooter Home Assistant,

3 - Les « sensor » sont opérationnels,

C - Purger la boite à chaque reboot de Home Assistant et envoyer le dernier statut.

1 - Créer le script python pour purger la boite dans /config/python_scripts/mail.py

#!/usr/bin/python3
import imaplib
box = imaplib.IMAP4_SSL('imap.free.fr', 993)
box.login("xxxxxxx@free.fr","mot de passe")
box.select('Inbox')
typ, data = box.search(None, 'ALL')
for num in data[0].split():
   box.store(num, '+FLAGS', '\\Deleted')
box.expunge()
box.close()
box.logout()

Puis ajouter dans /config/configuration.yaml,

shell_command:
  emptyinbox: python /config/python_scripts/mail.py

2 - Purger la boite et envoyer le denier statut via automatisation,

alias: Vider Mail DIAGRAL (Arrêt)
description: ""
trigger:
  - platform: homeassistant
    event: shutdown
condition:
  - condition: state
    entity_id: sensor.diagral
    state: arret
action:
  - service: shell_command.emptyinbox
    data: {}
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - service: notify.free
    data:
      title: "Mise à l'arrêt de l'alarme /// via home assistant "
      message: Mail automatique pour status DIAGRAL après reboot home assistant
  - service: notify.mobile_app_julien
    data:
      message: >-
        Redémarrage de Home Assistant, purge de la boite mail alarme.ha@free.fr
        ; Vérifier le statut de l'alarme  =  Arrêt
      title: HOME ASSISTANT
mode: single

A dupliquer avec les autres statuts.

Voilà vous pouvez utiliser le statut de votre alarme pour effectuer vos automatisations. ça fonctionne plutôt bien sauf quand embouteillage de notification chez DIAGRAL !