(modifié le 10 mai 2021 à 0:50)

J'utilise quelques capteurs sans fil alimentés par une pile lithium ou par des accus rechargeables comme dans mes sondes de température et d'humidité 433MHz (banggood). Depuis que j'ai mis des piles rechargeables Eneloop l'autonomie est de 4 à 6 mois, et je suis toujours satisfait de ces sondes.

Mais comment se rendre compte que les piles sont vides et doivent être remplacées ?

C'est ce que je vous propose de voir aujourd'hui : recevoir une notification email quand une sonde ne communique plus avec Domoticz.

Quel intérêt ?

Il faut se rendre compte assez rapidement d'un capteur/sonde qui ne communique plus pour éviter d'avoir des trous dans les courbes, mais pas que. Si vous avez des scénarios / scripts liés à ces sondes vous risquez d'avoir des petites surprises, sans parler du WAF qui va en prendre un coup ^^

Autre intérêt : être notifié des sondes/capteurs qui ont du mal à communiquer avec Domoticz : trop de distance, obstacles, etc.

La solution

Il existe de nombreuses façon de parvenir au résultat.  J'ai opté pour un script dzVents (lua) directement dans Domoticz.

Menu Configuration > Plus d'options >

Créer un nouveau script en cliquant sur le "+" > dzVents > device

Effacez le contenu par défaut, donnez-lui un nom :

Puis collez le contenu du script ▶️ pingSondes.lua (raw)

Ce script s'exécute toutes les 6 heures (paramétrable dans la section "timer") et va parcourir la dernière date de communication de chaque sonde déclarée dans le tableau "devicesToCheck" :

Si la dernière communication est plus ancienne que le seuil en minutes alors il vous envoie un email pour vous prévenir

Vous devez saisir le nom de vos sondes à la place des 2 exemples "Temperature Salon" et "Detecteur porte entree".

Attention : Si vous collez insérez directement le code dans un fichier dans /home/pi/domoticz/scripts/lua il ne sera pas éditable dans l'interface web de Domoticz.

Adaptable

La notification est faite par email car je considère que cela n'a rien d'urgent.

Mais vous pouvez tout à fait utiliser une autre méthode configurée dans Domoticz : sms, push, etc. et adapter le code dzVents.

ℹ️ Besoin d'aide ?

❌ Si le script ne fonctionne pas, vérifiez qu'il est bien sur "on" dans l'éditeur LUA (en haut à gauche).

❌ Si vous obtenez cette erreur :

pingSondes.lua:xx: attempt to compare nil with number

Vérifiez le nom de votre sonde, il doit être identique au nom dans le menu Configuration > Dispositifs (la casse n'est pas importante). Privilégiez des noms courts sans accent.

❌ Si vous ne recevez par la notification, vérifiez la configuration dans le menu  :

Configuration > Paramètres > Email

Chez SFR j'utilise smtp.numericable.fr sur le port 25, sans identifiant ni mot de passe, avec un email d'expéditeur d'un domaine inexistant (pour éviter des blocages liés à SPF). Ce SMTP miserable marche encore et il est plus tolérant que celui de SFR 😉

Conclusion

En complément je vous conseille de jeter un oeil sur check dead devices by desc.lua ou dzBasic qui permettent de faire sensiblement la même chose à partir du champ description.

Je n'ai rien inventé et je suis allé au plus simple dans le code, ça fait le job. N'hésitez pas à partager vos améliorations 🙂

complément : documentation dzVents

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter