Dans l’article précédent, nous avons vu comment intégrer très facilement les accessoires Xiaomi Aqara sous Domoticz avec Node-RED en utilisant le sniffer de trames Zigbee du projets Zigbee2MQTT. Je vous propose de terminer cette série d’article avec le test du détecteur de fumée Xiaomi Mijia Honeywell. Nous allons aller un peu plus loin et envoyer une notification à notre smartphone si le capteur détecte de la fumée.
Avant de commencer, je tiens à vous rappeler que pour le moment ce capteur est destiné uniquement au marché intérieur Chinois. Vous pouvez l’acheter et l’installer chez vous mais en aucun cas ce détecteur de fumée pourra être utilisé comme système d’alarme incendie principal. Il pourra venir compléter un équipement homologué CE.
Sommaire
- 1 Déballage du détecteur de fumée Xiaomi Mijia Honeywell
- 2 Intercepter les messages Zigbee à l’aide de Zigbee2mqtt
- 3 Inclusion du détecteur de fumée sous Domoticz à l’aide du sniffer Zigbee2mqtt
- 4 Transférer les messages MQTT à Domoticz à l’aide de Node-RED
- 5 Recevoir une notification sur un smartphone iOS ou Android à l’aide de PushOver en cas d’alarme
- 6 Ouvrir un compte PushOver et récupérer la clé utilisateur (USER KEY)
- 7 Installer l’application mobile et ajouter l’appareil
- 8 Créer une application et récupération de la clé API
- 9 Configuration de PushOver sur Domoticz
- 10 Configurer l’envoi d’une notification en cas de détection de fumée
Déballage du détecteur de fumée Xiaomi Mijia Honeywell
Le détecteur de fumée Xiaomi Mijia Honeywell (JTYJ-GD-01LM/BW) est un détecteur de petit dimension de couleur blanche. Il mesure 90mm de diamètre pour 35mm de haut. On se fixe à l’aide d’une platine de fixation à l’aide de 2 vis ou d’un autocollant (livré dans le carton).
Le détecteur fonctionne à l’aide d’une seule pile lithium 3V CR123 non livrée.
Intercepter les messages Zigbee à l’aide de Zigbee2mqtt
Le bouton d’inclusion se trouve en facade. C’est le bouton de d’auto-test mensuel du capteur. Lancer le script de la passerelle
cd /opt/zigbee2mqtt npm start
Attendez d’avoir le message Zigbee: allowing new devices to join puis cliquez une seule fois sur le bouton d’auto test. En cas de problème, appuyez à plusieurs reprises si le détecteur passe en veille avant la fin de l’inclusion.
Renommez le nom du détecteur de fumée (sans accent ni espaces) en éditant le fichier de configuration.
nano /opt/zigbee2mqtt/data/configuration.yaml
Inclusion du détecteur de fumée sous Domoticz à l’aide du sniffer Zigbee2mqtt
Le projet Zigbee2mqtt intercepte les trames Zigbee envoyées par les détecteurs Mijia ou Aqara à la gateway officielle. La gateway n’est plus nécessaire pour piloter ou récupérer les mesures et les états en provenance des accessoires domotiques. Si vous découvrez le projet Zigbee2mqtt, voici les articles précédents que je vous conseille de lire également
Sous Domoticz, commencez par créer un nouvel appareil virtuel de type interrupteur (switch). Notez son IDX.
Allez ensuite sur la page interrupteur et éditer l’accessoire que vous venez de créer. Dans la liste, choisissez Détecteur de fumées (Smoke Detector).
Transférer les messages MQTT à Domoticz à l’aide de Node-RED
Sur NodeRED, collez puis modifiez le flow suivant pour vous connecter au Topic qui renvoi l’état du détecteur de fumée.
[{“id”:”c15799c1.71f028″,”type”:”mqtt out”,”z”:”8cb500b2.1fda4″,”name”:””,”topic”:”domoticz/in”,”qos”:”2″,”retain”:””,”broker”:”72f9bb18.b361b4″,”x”:830,”y”:120,”wires”:[]},{“id”:”b2612bab.9418a8″,”type”:”mqtt in”,”z”:”8cb500b2.1fda4″,”name”:”Xiaomi Honeywell smoke sensor”,”topic”:”zigbee2mqtt/XiaomiMijiaHoneywell”,”qos”:”2″,”broker”:”8687cf12.76eee”,”x”:270,”y”:100,”wires”:[[“de200346.f79ea”]]},{“id”:”de200346.f79ea”,”type”:”json”,”z”:”8cb500b2.1fda4″,”name”:””,”property”:”payload”,”action”:””,”pretty”:false,”x”:470,”y”:100,”wires”:[[“43837e4f.8516a”]]},{“id”:”43837e4f.8516a”,”type”:”function”,”z”:”8cb500b2.1fda4″,”name”:”Split”,”func”:”msg1={};\n\nif ( msg.payload.smoke ) {\n msg1.payload = {\n \”command\” : \”switchlight\”,\n \”idx\” : 6,\n \”switchcmd\” : ‘Off’\n }\n} else {\n msg1.payload = {\n \”command\” : \”switchlight\”,\n \”idx\” : 6,\n \”switchcmd\” : ‘On’\n }\n}\n\nreturn [msg1];”,”outputs”:1,”noerr”:0,”x”:650,”y”:100,”wires”:[[“c15799c1.71f028″,”b0b78663.38b198″]],”inputLabels”:[“json”],”outputLabels”:[“Etat”]},{“id”:”b0b78663.38b198″,”type”:”debug”,”z”:”8cb500b2.1fda4″,”name”:””,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”false”,”x”:830,”y”:80,”wires”:[]},{“id”:”72f9bb18.b361b4″,”type”:”mqtt-broker”,”z”:””,”broker”:”localhost”,”port”:”1883″,”clientid”:””,”usetls”:false,”compatmode”:true,”keepalive”:”60″,”cleansession”:true,”birthTopic”:””,”birthQos”:”0″,”birthPayload”:””,”willTopic”:””,”willQos”:”0″,”willPayload”:””},{“id”:”8687cf12.76eee”,”type”:”mqtt-broker”,”z”:””,”name”:”MQTT Local”,”broker”:”localhost”,”port”:”1883″,”clientid”:””,”usetls”:false,”compatmode”:true,”keepalive”:”60″,”cleansession”:true,”birthTopic”:””,”birthQos”:”0″,”birthPayload”:””,”closeTopic”:””,”closeQos”:”0″,”closePayload”:””,”willTopic”:””,”willQos”:”0″,”willPayload”:””}]
Modifiez le code de la fonction en indiquant l’IDX de l’accessoire Domoticz
msg1={}; if ( msg.payload.smoke ) { msg1.payload = { "command" : "switchlight", "idx" : 6, "switchcmd" : 'On' } } else { msg1.payload = { "command" : "switchlight", "idx" : 6, "switchcmd" : 'Off' } } return [msg1];
Déployez le flow et cliquez sur le bouton d’auto-test. Après quelques secondes, le détecteur signal un alarme incendie sur Domoticz. C’est intégré !
Recevoir une notification sur un smartphone iOS ou Android à l’aide de PushOver en cas d’alarme
Un fois intégré à Domoticz, il est très facile de recevoir une alerte sur son smartphone dès que le détecteur signale de la fumée. Domoticz met à disposition un très grand nombre de connecteur vers des services de notification. Je vous propose de tester PushOver. L’application PushOver est payante (une seule fois après une période de test gratuite) mais elle est très fiable et simple à configurer.
PushOver présente plusieurs avantages. Tout d’abord, les notifications sont cryptées ce qui permet de garantir la confidentialité de vos échanges. Ensuite PushOver sait reconnaitre les notifications urgentes et adapte son comportement en conséquence. Il est possible de choisir un son différent pour les notifications d’urgence et surtout PushOver répète la notification jusqu’à ce l’utilisateur valide la lecture. C’est idéal pour une alarme incendie, PushOver va vous harceler jusqu’à ce que acquittiez la notification.
Ouvrir un compte PushOver et récupérer la clé utilisateur (USER KEY)
Allez sur le site de PushOver et créez un compte gratuit en cliquant sur Signup. Le site n’est disponible uniquement en anglais mais les questions restent classiques (email, nom d’utilisateur…)
Une fois le compte activé, connectez-vous pour récupérer votre clé utilisateur. Elle est affiché en gros dans le coin supérieur droit de la page d’administration
Installer l’application mobile et ajouter l’appareil
installez l’application pour iOS ou Android et connectez vos avec les identifiants de votre compte PushOver. L’application demande immédiatement le nom à attribuer à l’appareil. Donnez un nom puis cliquez sur Add Device
Retournez sur le site de PushOver et actualisez la page. Après quelques secondes, vous devriez voir votre smartphone ou votre tablette dans la liste Your Devices
Créer une application et récupération de la clé API
Pour pouvoir envoyer des notifications depuis Domoticz, nous aurons besoin d’un clé d’authentification pour pouvoir accéder à l’API de PushOver. En bas de la page, cliquez sur Create an Application/API Token
La création d’une application est super simple. Il suffit d’indiquer un nom de 20 caractères maximum. Comme vous pouvez le constater, PushOver autorise l’envoi de 7500 messages gratuits par mois ce qui est déjà énorme.
Terminez la création de l’application en cliquant sur Create Application. de retour sur la page principale, cliquez sur le nom de l’application pour récupérer le jeton (Token)
Configuration de PushOver sur Domoticz
Tout est près pour configurer PushOver à Domoticz. Ouvrez le panneau de configuration de Domoticz et allez sur l’onglet Notification puis configurer comme ceci :
- Activez PushOver
- Collez la clé utilisateur (USER KEY) récupérée sur la page d’administration
- Collez l’API Key du device Domoticz créé précédemment
Cliquer sur Tester pour vérifier que tout fonctionne correctement
Configurer l’envoi d’une notification en cas de détection de fumée
Il ne reste plus qu’à configurer l’envoi d’une notification dès que le détecteur Xiaomi Mijia Honeywell détecte de la fumée. Ouvrez l’onglet des interrupteurs et cliquez sur Notification
Sélectionner Switch On pour déclencher l’envoi de la notification dès que la fumée est détectée par le capteur. Pour que PushOver répète la notification jusqu’à ce quelle ait été acquittée, choisissez la priorité Urgente (Emergency). Cela évite de devoir passer par un script Lua coté Domoticz. Cochez également Ignore intervalle pour envoyer immédiatement la notification.
Par défaut Domoticz construit le message PushOver en prenant le nom du capteur et en ajoutant son état ce qui donne ici par exemple
Pour personnaliser le message, il suffit d’indiquer le message souhaité dans le champ message (optionnel), et voilà ce que ça donne maintenant
Comme c’est un message avec un niveau de priorité urgente, il va être répété jusqu’à ce que l’utilisateur acquitte la notification. Appuyez sur la notification pour ouvrir PushOver et cliquez sur Acknowledge Notification.
Voilà, même lorsque vous n’êtes pas chez vous, vous pouvez recevoir très facilement des notifications sur votre smartphone iOS ou Android. La méthode fonctionne avec tous les accessoires domotiques intégrés à Domoticz.