Détecter l’allumage d’une LED d’alarme

Objectif

Sur mon électrolyseur au sel, j’ai une Led verte qui indique que tout va bien, si elle s’éteint, je voudrais que Jeedom le sache pour me prévenir.

Je n’allais pas démonter l’électrolyseur pour récupérer une l’alimentation ou pas de la led, même si cela me démangeait, j’ai cherché comment récupérer plutôt l’info « visuelle » de la Led allumée ou éteinte.

Mon idée a été de chercher s’il existait un détecteur de luminosité, tout simple à interfacer sur mon système existant de gestion de contrôle de ma piscine. Mon système utilisant un port I2C, j’ai cherché ce type de puce et il fallait que ce soit interfaçable sur Esp Easy pour plus de simplicité.

Matériel utilisé

En plus du matériel du système existant de gestion de la piscine :

  • BH1750 (ou GY-302) Un capteur de luminosité

J’en ai commandé deux pour 0.83€ x 2 + 0.73€ port + 0.48€ Taxes = 2.86€

Connexion de la sonde

  • La sonde est en I2C donc deux connecteurs SDA et SCL à connecter sans se tromper au bus existant.
  • VCC au 5v et GND à la masse.
  • Addr permet de changer l’adresse, on va garder la valeur par défaut et donc ne pas la connecter.

Positionnement de la sonde sur la Led d’Alerte

Il faut positionner le capteur de luminosité (flèche verte) sur la LED et la faire tenir avec du scotch noir qui couvre bien.

Configuration de Esp Easy

J’avoue ne pas avoir fait trop d’essais sur le calage de la résolution ou autre, j’ai tout laissé par défaut et cela fonctionne bien.

  • Quand la LED est allumée, j’ai Lux : 400
  • Quand la LED est éteinte, j’ai Lux : 0

Cela me convient très bien.

Ajout d’une règle pour avoir un True/False à la place d’une valeur en Lux

////
// Transforme la valeur de LedAlerte en Lux en True/False sur Piscine#Alerte
////

on LedAlerte#Lux do
if [LedAlerte#Lux] > 20
TaskValueSet 8,4,0 // Mise a jour de Piscine#Alerte=0
else
TaskValueSet 8,4,1 // Mise a jour de Piscine#Alerte=Alarme=1
endif
endon

Pour mémoire, TaskValueSet va m’initialiser les variables « Dummy Device » que j’utilise et que je récupère dans Jeedom

Donc dans le code, TaskValueSet va attribuer le résultat 0 ou 1 à la 8eme ligne du tableau / 4ème valeur (donc Alarme).

Nota : J’ai ajouté une petit contrôle dans la règle pour qu’une alarme ne remonte que si l’électrolyseur est alimenté.

Récupération dans Jeedom

Tout cela est appliqué dans le précédent tuto, donc comme dans l’illustration ci dessus, je récupère dans Jeedom/EspEasy la valeur Alarme qui me donnera 1 quand il y a un souci et 0 quand tout va bien.

Laisser un commentaire

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