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 !