Installation d’un capteur de fuite d’eau (WD18) sous Heyu

Ayant échappé ces derniers mois à deux fuites d’eau j’ai décidé de faire l’acquisition d’un module WD18 (à la norme X10) afin de compléter mon installation domotique fonctionnant sous Heyu (sur un Raspberry Pi modèle B).

Après avoir fait le tour des principaux sites français spécialisés en domotique (Planète Domotique, Domadoo, …) mon choix s’est finalement porté sur eDomotique où j’ai trouvé mon bonheur pour 21,70 Euros.

Vue du WD18

Notre fameux WD18

La mise en oeuvre est relativement simple:

  • Commencez par y installer une pile 9v (non fournie..)
  • Appuyez pendant au moins 5 secondes sur le bouton poussoir « Test » pour initialiser la génération du code RF. Vous devriez voir la Led rouge clignoter pendant quelques secondes. Votre émetteur est désormais initialisé.

Passez ensuite Heyu en mode « moniteur » de la façon suivante:

root@raspberrypi:~# heyu monitor
2015/01/02 17:39:25  Monitor started

En appuyant quelques secondes sur le bouton poussoir « Test » et vous devriez voir apparaitre les lignes suivantes:

2015/01/02 17:40:22  rcva func       RFdata : Type Sec ID 0x4A8C Data 0x26
2015/01/02 17:40:25  rcva func       RFdata : Type Sec ID 0x4A8C Data 0x26
2015/01/02 17:40:26  rcva func       RFdata : Type Sec ID 0x4A8C Data 0x26
2015/01/02 17:40:28  rcva func       RFdata : Type Sec ID 0x4A8C Data 0x26

 

Grâce à ces quelques lignes (notez le délai d’environ 2 secondes entre ces quatre messages) vous allez pouvoir récupérer l’identifiant de votre émetteur: 0x4A8C dans notre cas.

Vue arrière du WD18

Vue arrière du WD18

 

L’étape suivante consiste à mettre à jour votre fichier de configuration Heyu. A ce stade je me suis fait une petite frayeur car je n’ai pas trouvé de comptabilité avec ce module dans la documentation officielle. Seul un capteur de fuite est supporté, il s’agit du « ElekHomica EH-WD210 ». Malgré quelques recherches sur Google Images je n’ai absolument pas réussi à trouver trace de ce modèle…

Du coup j’ai testé et…. cela fonctionne à merveille (sinon je n’écrirai pas cette article en même temps…)

Voici la ligne à ajouter dans votre fichier x10.conf:

alias water1 B8 EH-WD210 0x4A8C

A adapter bien sûr suivant le code de votre module. Le B8 correspond à un « emplacement » x10 libre mais il n’a que peu d’importance pour la suite.

Ensuite il vous suffit de redémarrer votre instance de Heyu:

heyu restart

puis de repasser en mode « monitor »:

heyu monitor

En appuyant à nouveau sur le bouton « Test », vous devriez désormais voir apparaitre:

2015/01/02 18:02:17  rcva func        Alert : hu B8   (water1)

Notez également l’envoi de deux messages consécutifs toutes les heures (mais qui ne déclenche pas l’éventuel script associé):

2015/01/02 18:35:36  rcva func        vData : hu B8  vdata 0x66  (water1)
2015/01/02 18:35:38  rcva func        vData : hu B8  vdata 0x66  (water1)
2015/01/02 19:36:25  rcva func        vData : hu B8  vdata 0x66  (water1)
2015/01/02 19:36:27  rcva func        vData : hu B8  vdata 0x66  (water1)
2015/01/02 20:37:06  rcva func        vData : hu B8  vdata 0x66  (water1)
2015/01/02 20:37:07  rcva func        vData : hu B8  vdata 0x66  (water1)

Parfait tout fonctionne à ce stade !

Il ne reste plus qu’à ajouter une dernière ligne à votre fichier x10.conf pour générer l’exécution d’un script lorsqu’un alarme est déclenchée:

SCRIPT water1 alert rcva :: /etc/heyu/water_alarm.sh evier

Voici le script Shell (/etc/heyu/water_alarm.sh) que j’utilise pour être alerté en cas d’alarme:

#!/bin/sh
LOG_FILE='/mnt/ramdisk/log/water.log'
HEYU='/usr/local/bin/heyu'
DEST='votre.adresse@gmail.com'

logdate=`date +"%d-%m-%Y %H:%M"`

# Insertion d'une ligne dans le fichier de log

echo "$logdate: Alarme $1" >> $LOG_FILE

# Envoi d'une notification Prowl sur l'iPhone

/etc/heyu/prowl.sh 2 "Alarme" "Inondation $1" 

# Envoi d'un mail (on ne sait jamais...)

SUBJECT="Alerte inondations - $logdate"
CONTENU="Inondation $1"
echo $CONTENU | mail -s "$SUBJECT" $DEST

Comme vous pouvez le voir le script est assez simple et permet à la fois de stocker l’information dans un fichier de log (monté sur un ramdisk), d’envoyer une notification sur mon iPhone mais aussi d’envoyer un e-mail.

Pour la notification iPhone j’utilise un script (/etc/heyu/prowl.sh) en provenance de http://flx.me mais qui ne semble plus être maintenu (ni disponible). Je vous le recopie ici par soucis d’exhaustivité:

#! /bin/sh
# Script by FLX: http://flx.me
# Requirements: curl
# Usage: ./prowl.sh priority(-2 to 2) appname description
# Example: ./prowl.sh 0 "linux" "this is a test"
app="Alarme"
priority=$1
eventname=$2
description=$3
apikey=aabb-votre-cle-api-ccdd

if [ $# -ne 3 ]; then
echo "Prowl 4 Linux"
echo "Usage: ./prowl.sh priority(-2 to 2) appname description"
echo 'Example: ./prowl.sh 0 "linux" "this is a test"'
else
curl https://prowl.weks.net/publicapi/add -F apikey=$apikey -F priority=$priority -F application="$app" -F event="$eventname" -F description="$description"
fi

Pour le faire fonctionner il suffit de vous générer une clé API en vous inscrivant sur le site http://www.prowlapp.com puis d’installer l’application sur votre iPhone/iPad.
N’oubliez pas de rendre le script exécutable en tapant la commande suivante:

chmod +x /etc/heyu/prowl.sh

Amusez-vous bien !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *