Christophe Nowicki

January 13, 2011

Suivi de la consommation d’eau et du bon fonctionnement la climatisation

Voici un exemple d’installation permettant de suivre sa consommation d’eau et recevoir des notifications lors d’un problème avec le circuit de climatisation.

Problématique

Lorsque le système de climatisation d’une salle serveur s’arrête alors la température monte dangereusement, et après avoir perdu quelques routeurs coûtants plusieurs milliers d’euros ;-), nous avons décidé d’agir et mettre en place un système de surveillance.

N’ayant pas trouvé de système / solution comparable dans le commerce.
Nous avons donc décidé de suivre les conseils de mon cousin Piotr Adamski. ;-)

Solution

Nous avons donc mis en place la solution suivante :

Composants

Les composants matériels suivants sont nécessaire :

L’ensemble des composants sont disponibles en France, chez Planet Domotique et sont produits par Embedded DATA Systems.

Pour la partie logiciel vous avez plusieurs choix possibles pour :

  • Faire des graphiques de la consommation d’eau à l’aide du protocole SNMP avec Munin ou Cacti ;
  • Surveiller l’écoulement de l’eau à l’aide de Nagios ou Monit ;

Budget

  • 40 euros TTC pour le compteur d’eau ;
  • 56 euros TTC pour le compteur d’impulsion ;
  • 130 euros TTC pour le serveur Ethernet / 1-wire ;
  • 100-200 euros TTC pour l’installation du compteur par un plombier ;

Total : de 326 à 426 euros TTC

Photos du montage

Voici quelques photos du montage en action :

Surveillance avec Monit

Le script de surveillance pour Monit est disponible sur github :

Simple water watchdog script for OW-SERVER / DS2423 and Monit

Il se lance via monit de la manière suivante :

check process water_watchdog with pidfile water_watchdog.pid
    	start program  = water_watchdog

check file water_watchdog.status with path water_watchdog.status
	ignore match OK
	if match ^KO then alert

Il faut ajouter le chemin absolut aux noms de fichiers.

Le script de surveillance fonctionne sur le principe suivant :

Un lanceur de deamon water_watchdog, lance le script water_watchdog.pl et le surveille en permanence.

Celui-ci interroge toutes les 60 secondes la compteur d’eau et vérifie que la quantité d’eau consommée a bien augmentée dans l’intervalle.

Écrit le résultat dans le fichier water_watchdog.status qui est surveillé par monit.

En cas de coupure d’eau, le nombre de litres d’eau consommée n’évolue pas et une alerte monit est lancée.

Le système est très fiable, mais il est nécessaire de le paramétrer en fonction du débit de votre installation.
Voici ma configuration pour 10 000 l/j :

  • FLOW_ALERT_LOWER_LIMIT = 1
  • RATE = 60

Conclusion

Le script fonctionne en production depuis plusieurs semaines. Il permet d’intervenir très rapidement en cas de coupure et donc de sauver la vie de quelques serveurs ;-)

Références

Filed under: Hardware,Home automation — Tags:, , , , — cscm @ 10:38

December 8, 2009

Capteur de dioxyde de carbone pour réseau 1-wire

Après la lecture de plusieurs livres de Jean-Marc Jancovici (merci Nicolas ;-) ),
je me suis intéressé à la concentration de dioxyde de carbone dans l’air.
En effet, cette concentration afflue directement sur le climat de la planète.
Je me suis donc mis à la recherche d’un capteur de CO2 abordable pour ma station météo.

La recherche du capteur

co2 sensor Mes critères pour le capteur de dioxyde de carbone de ma station météo étaient les suivants :

  • communicant avec le pc à l’aide d’un protocole standard ;
  • fonctionnant sous Debian GNU/Linux ;
  • petit budget, moins de 150 euros.

Après plusieurs jours recherche, je me suis retrouvé le bec dans l’eau.

En effet, ce genre de capteur est visiblement réservé aux équipements scientifiques et la plupart des devis que j’ai réussi à obtenir sont bien au dessus de mon budget.
Mais dernièrement, j’ai trouvé un revendeur de matériel 1-wire en Suède : m.nu.
Celui-ci propose un capteur de CO2 abordable : CO2-meter.
Ce capteur est basé sur le capteur K30 de chez SenseAir et un DS2450.
Ce capteur peut être utilisé en intérieur ou bien à l’extérieur.
Par contre dans le cas d’une utilisation extérieur, il faut le protéger des précipitations.

Matériel

Pour faire fonctionner le capteur vous avez besoin des composants suivants :

Produit Prix
CO2-meter 139,93€
5V Power injectors 19,96€
Alimentation 5V 14,95€

Exploitation du capteur

Avec OWFS

Une fois le capteur branché sur le réseau 1-wire, il est vu par owfs :

$ tree /mnt/owfs/20.C17E0D000000
/mnt/owfs/20.C17E0D000000
|-- PIO.A
|-- PIO.ALL
|-- PIO.B
|-- PIO.C
|-- PIO.D
|-- address
...
|-- type
|-- volt.A
|-- volt.ALL
|-- volt.B
|-- volt.C
|-- volt.D
|-- volt2.A
|-- volt2.ALL
|-- volt2.B
|-- volt2.C
`-- volt2.D
3 directories, 74 files
$ cat /mnt/owfs/20.C17E0D000000/type
DS2450%

Les informations intéressantes se trouvent dans les fichiers :

  • volt.A : sortie du capteur de CO^2, donne la concentration de CO2 en ppm. Il faut multiplier la valeur par 1000. Ex: 0.772277 * 1000 = 772 ppm ;
  • volt.B : statut du capteur de CO^2, le voltage doit être au alentour de 3.2V ;
  • volt.D : voltage du DS2450S, doit être aux alentours de 5V ;

Avec Munin

Pour faire un graphique de la concentration de dioxyde de carbone, j’utilise munin et un petit plugin fait maison :

$ svn co http://svn.csquad.org/owcarbondioxide
A owcarbondioxide/owcarbondioxide
...
$ chmod a+x owcarbondioxide/owcarbondioxide
# mv owcarbondioxide/owcarbondioxide /usr/share/munin/plugins/
# ln -s /usr/share/munin/plugins/owcarbondioxide /etc/munin/plugins/owcarbondioxide
$ /etc/munin/plugins/owcarbondioxide config
graph_title Carbon dioxide 1-wire sensor
graph_args --base 1000 --lower-limit 0 --upper-limit 5000
graph_vlabel Carbon dioxide in ppm
graph_category sensors
graph_info This graph shows the Carbon dioxide on the one-wire network.
Chambre.label Chambre
$ /etc/munin/plugins/owcarbondioxide get
Chambre.value 786.184

Vous devriez obtenir ce type de graphique :
meuh.csquad.lan-owcarbondioxide-day

Références

Voici quelques références intéressantes sur le sujet :

Filed under: Home automation — Tags:, , , — cscm @ 20:09

April 23, 2009

Mesure de température à l’aide de capteurs 1-wire

Cherchant une solution pour mesurer la température de mon appartement de manière informatisée ; j’ai découvert le bus 1-Wire qui permet de connecter des capteurs divers à l’aide d’un seul cable (téléphonique aka RJ11 dans mon cas).
Ce protocole est généralement utilisé pour des instruments de mesure météorologiques.

Ce billet explique le fonctionnement de mon installation.

Le matériel nécessaire

Composant Prix
Adaptateur USB vers 1-Wire ( DS9490R ) 29 $
Cable RJ12 2 à 10 $
Capteur de température ( TAI8520 ) 22 $
Capteur de température et d’humidité ( TAI8540D ) 50 $

Le fabriquant de ces modules est AAG Electronica.
Vous pouvez commander ce matériel directement chez le fabriquant aux USA ou bien chez Audon Electronics en Angleterre.

J’ai acheté mon matèriel chez Audon, car le taux de change de la Livre sterling est actuellement très avantageux (1 € = 1 £ ).
De plus, cela évite les diffèrents problèmes liés aux douanes (non … je vous dis que ce sont des capteurs de température pas des missiles ;-) )

Installation du matériel

Avant de brancher l’adaptateur USB, il faut désactiver le chargement des modules noyau ds2490 et wire dans le fichier : /etc/modprobe.d/blacklist


cat <<EOF >> /etc/modprobe.d/blacklist
blacklist ds9490r
blacklist ds2490
blacklist wire
EOF

Vous pouvez ensuite brancher l’adaptateur USB et vérifier qu’il est bien présent à l’aide de la commande lsusb :


$ lsusb | grep 1-Wire
Bus 002 Device 006: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter

Digitemp, tu oublira vite

Lorsqu’on cherche une solution de monitoring de température, on trouve sur le programme Digitemp.
Je ne vous le conseille vraiment pas, car il ne fonctionne pas très bien :

  • il renvoie une valeur de manière aléatoire ;
  • il nécessite les droits root pour lire le port usb ;
  • les scripts fournis avec le programme ne fonctionnent pas, il faut les modifier, etc…

Bref après une soirée de configuration, j’ai bien réussi à mettre les valeurs dans une base MySQL avec un script cron et digitemp, mais le lendemain matin cela ne fonctionnait plus …

Owfs, rocks les ours de laponie du nord

Owfs est un bien meilleur solution pour le monitoring de la température.
L’installation et la configuration est décrite sur le Wiki de Sebastien Mei :

J’ai donc installé le tout et configuré le monitoring avec munin :

C’est pas ti beau?

Filed under: Debian,Home automation — Tags: — cscm @ 22:19

Powered by WordPress