Je cherche depuis quelques jours une méthode pour m'appeler si jamais l'alarme se déclenche chez moi. J'utilise surtout telegram en général, mais vous savez ce que c'est les notifications : on ne les lit pas toujours toutes et elles se perdent dans le flot des emails et autres messages d'amis. Pour moi, le seul vrai moyen de réagir rapidement en cas d'urgence, c'est de faire sonner le téléphone (avec la montre connectée qui vibre en même temps
J'ai lu quelques articles à ce sujet, mais aucun ne me convenait vraiment. Le premier nécessitait de laisser un ancien portable android branché 24h/24, ce que je n'ai pas envie de faire depuis qu'un ami a fait flamber sa maison à cause d'une batterie de portable qu'il ne débranchait jamais. Un autre article faisait référence à sip-tools, un vieux projet qui n'a pas bougé depuis des années et a l'air abandonné.
Et puis au cours de mes recherches, je suis tombé sur "Messagebird". C'est un site plutôt destiné aux professionnels, pour automatiser des appels, des envois de sms avec des réponses que l'on peu prédéfinir. Le gros avantage pour moi qui ne suis pas codeur, c'est qu'on peut faire tout un script sans rien connaître à la programmation, simplement en glissant et déplaçant des actions à enchaîner (comme blocky).
Voila par exemple ce que j'ai préparé aujourd'hui sur le site :
L'alarme de ma maison se déclenche -->
domoticz envoie une requête http vers messagebird -->
messagebird m'appelle sur le portable. Si je ne décroche pas il appelle un autre numéro -->
un message nous dit qu'il y a un problème -->
il me propose de couper la sirène si j'appuie sur 1 -->
ou appeler la gendarmerie si j'appuie sur 2
Finalement si aucun de nous deux a répondu, on recevra un SMS avec le numéro de la gendarmerie, ça nous évitera de le chercher dans la panique
Bien sur on peut mettre des tas d'autres options, demander à domoticz de faire toutes les actions pilotables par json, tout est envisageable (déclencher une lumière, un son, une caméra à la maison). On peut aussi imaginer pouvoir enregistrer les bruits dans la maison juste avant que la sirène se soit déclenchée et les écouter au cours de l'appel téléphonique.
Voila ce que mon scénario donne en image :

Alors ce n'est pas gratuit mais ce n'est pas cher. J'ai fait des tests toute la journée et je dirais que mon scénario coûte 4 centimes à chaque déclenchement. On ne commence à payer que si on décroche. Etant donné que ce scénario ne se déclenchera qu'en cas d'urgence extrême, ça ne devrait pas me ruiner.
Voilà les étapes à suivre pour faire la même chose que moi :
- Créer un compte sur www.messagebird.com
- Vous disposez de 10 crédits pour faire des tests dès l'ouverture du compte mais les fonctionnalités que l'on souhaite ne marchent qu'avec de l'argent déposé sur le compte. Il faut donc faire un dépôt, minimum de 15 € + TVA (si vous habitez en Suisse, vous ne payerez pas la TVA). Malheureusement le dépôt n'est pas instantané, même par paypal. Il faudra attendre que quelqu'un le valide lors d'un jour ouvrable.
- Une fois le compté crédité en euros, on clique sur "Flow Builder" à gauche, et on commence à construire notre projet
L'évênement déclenchant sera "webhook", une url qu'on appellera à partir de notre Domoticz :

Ce webhook, nous pouvons le créer avec ou sans variable. Si je ne décide d'inclure aucune variable, il suffira d'appeler une URL du style https://flows.messagebird.com/flows/29x ... xxx/invoke pour que tout le scénario suivant se déclenche. Cette URL est générée par messagebird une fois que vous avez terminé ("publié") votre projet.
Si je décide d'ajouter une variable à mon projet, je devrai lancer le scénario avec un script curl qui sera le suivant :
Code : Tout sélectionner
curl -X POST -H 'Content-Type: application/json' -d '{
"variable1": "valeur_de_la_variable_1"
}' https://flows.messagebird.com/flows/29xxxxxf-544d-30af-9f0a-3xxxxx/invokeJe vais ajouter une variable "raison" qui me dira de vive voix au téléphone la raison pour laquelle mon téléphone portable sonne, en fonction du switch qui sera activé dans domoticz :

Et puis on glisse tranquillement nos étapes voulues sur le site. Par exemple j'ajoute comme première étape un appel vers mon portable, et une option si je ne décroche pas (en l'occurence appeler un autre numéro). En expéditeur on peut mettre ce qu'on veut. Le portable affiche réellement le numéro "fake" d'expéditeur quand il sonne ! Même 0600000000

J'ajoute ensuite un module de parole avec ma variable "raison" qui me dira la raison de l'appel :

Pour désactiver ma sirène (appui sur la touche 1 du téléphone) j'ajoute un module http request. Alors ici on pourrait très bien donner l'adresse json directe du switch à actionner du type http://user:pass@ip:port/json.htm?type=command¶m=switchlight&idx=xx&switchcmd=Off. Mais cela nécessite de laisser traîner sur le site de messagebird son username et password de domoticz, ce que je n'ai pas spécialement envie de faire. De plus mon port domoticz est bloqué de l'extérieur. J'ai donc pensé passer par une requête en php qui actionnera la commande json. Y a peut être plus simple, à vous de me le dire
Code : Tout sélectionner
<?php
$message=shell_exec("/volume1/web/scripts/testscript.sh 2>&1");
print_r($message);
?>
Code : Tout sélectionner
#!/bin/bash
curl -s 'http://user:pass@ip:port/json.htm?type=command¶m=switchlight&idx=xx&switchcmd=Off'
Et voilà finalement à quoi ressemble mon module http Request dans messagebird

Intégration dans domoticz
Pour commencer je me sers simplement de l'option "action On" sur la page de mon switch "alarme déclenchée". Si on n'utilise pas la variable créée chez messagebird, on entre alors simplement l'adresse https://flows.messagebird.com/flows/29x ... xxx/invoke pour que tout le scéario d'appel se déclenche quand le switch passera sur On.
Si on utilise la variable "raison", on renseigne dans "Action On" le lieu où se trouve le script sh sur le serveur domoticz, avec le chemin script://
Par exemple pour le détecteur de fumée de la cuisine le script sera :
Code : Tout sélectionner
#!/bin/bash
curl -X POST -H 'Content-Type: application/json' -d '{
"raison": "Il y a le feu dans la cuisine"
}' https://flows.messagebird.com/flows/29xxxxxf-544d-30af-9f0a-3xxxxx/invokeAvec cette méthode, il va falloir créer autant de scripts qu'il y a de switchs à surveiller, et modifiant à chaque fois la variable "raison". Ce n'est pas trèe élégant.
Le top serait d'inclure tout cela dans des scripts lua mais là je suis hors concours, à vous de jouer
Voilà pour ce premier petit tuto. A noter que le staff de messagebird est très réactif : ils ont un chat pour aider, et j'ai même découvert un bug sur leur flow builder qu'ils ont fixé dans la journée (je n'ai pas d'action chez eux
J'attends vos avis et des screenshots de vos "arbres décisionnels"