Geeek - Le blog Geek & High-tech

Après le Karotz qui parle quand vous dépassez un certain seuil de consommation d'énergie, voici une solution simple pour produire soit même des graphes de consommation électrique.
La première étape est d'installer sur votre tableau électrique un Z-Wave Smart Energy Meter de chez Aeon. Celui-ci est proposé à un tarif avoisinant les 100€ et diffuse des rapports de consommation en Z-Wave à intervalle régulier.

La seconde étape consiste à capturer les paquets Z-Wave et à les enregistrer dans une base NoSQL. Pour cela vous pouvez utiliser mon module "ZwaveBus" disponible sur Gitbub, celui-ci fonctionne parfaitement sur un petit Raspberry équipé d'un dongle Z-wave.

aeon-labs-compteur-de-consommation-electrique.jpg

Il vous suffira ensuite de ne laisser que le listener "power.js" qui prend en charge les messages Z-Wave provenant du Smart Energy Meter. Il faudra au préalable vous assurer du "nodeid" de votre Smart Meter, vous pourrez le découvrir au premier lancement du module "ZwaveBus".

Enfin, vous pouvez garder que les quelques lignes de code suivantes si vous n'avez pas de Karotz à faire parler ou clignoter.



/**
 * We listen for a COMMAND_CLASS_METER event.
 * This event is sent by the Aeon HEM2 power energy meter.
 */
bus.on(COMMAND_CLASS_METER, function(nodeid, value){

	 if (nodeid == 7 && value['label'] == "Power"){
		
		// Saving the event into the mongoDB
		new Event({ nodeid: nodeid,
		    comclass: comclass,
		    type: value['type'],
		    label: value['label'],
		    value: value['value']}).save();
		
	} 
});

Une fois l'application NodeJS démarrée (node app.js) et la base mongoDB démarrée, le module expose un Webservice REST simplement accessible au travers de l'URL suivante :

https://ip-de-votre-machine:9094/data/Power?date=2014-12-30

Le paramètre "Power" correspond aux types de rapports qui sont sauvegardés dans la base MongoDB et qui sont nécessaires pour la production de graphe.

Pour fabriquer un graphe de votre consommation d'électricité journalière, il suffira de créer la page Web suivante :


<html>
<head>
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
</head>
<body>

<div id="powerChart" style="height: 900px; width: 100%"></div>

<script>

console.log("Appel du service JSON");

$.ajax({
  dataType: "json",
  url: "https://ip-de-votre-machine:9094/data/Power",
  success: drawChart
});

function drawChart(data){
	console.log("Affichage du rC)sultat");

	new Morris.Area({
	  // ID of the element in which to draw the chart.
	  element: 'powerChart',
	  // Chart data records -- each entry in this array corresponds to a point on
	  // the chart.
	  data: data,
	  // The name of the data record attribute that contains x-values.
	  xkey: 'date',
	  // A list of names of data record attributes that contain y-values.
	  ykeys: ['value'],
	  // Labels for the ykeys -- will be displayed when you hover over the
	  // chart.
	  labels: ['value'],
	  // Filleds area opacity.
	  fillOpacity: 0.2,
	  // Smooth lines.
	  smooth : true,
	  // Point size.
	  pointSize : 1,
	  // Max value
	  ymax : 12000,
	  // Label suffix all y-labels.
	  postUnits: "W",
	  hideHover : true,
	});
}
</script>

</body>
</html>

Cette page appelle le Webservice exposés par l'application "ZwaveBus" permettant de récupérer la liste des rapports stockés au sein de la base MongoDB et les transmet au script "morris.js" qui se charge de produire un graphique dynamique.

Vous voilà outillé pour analyser vos consommations électriques dans le détail et identifier quels sont les appareils qui surconsomment de l'énergie.
Vous découvrirez peut-être que vous n'avez pas le bon abonnement EDF et qu'un abonnement avec une puissance plus faible pourrait être suffisant pour vos besoins.


Vous êtes correctement abonné à Geeek
Bienvenue ! Vous êtes correctement connecté.
Parfait ! Vous êtes correctement inscrit.
Votre lien a expiré
Vérifiez vos emails et utiliser le lien magique pour vous connecter à ce site