Connaissez vous Pachube ? Pachube (prononcé Patch-bay) est une société anglaise qui fournit une plateforme web permettant d’échanger des données entre machines (ce qu’on appelle « l’Internet des objets »). Une sorte de réseau social pour thermomètres et hygromètres. Petite présentation à l’occasion du rachat de la start-up anglaise par une société spécialisée dans la télémaintenance et l’accès informatique à distance, LogMeIn.
I. Concrètement, comment ça marche ?
Pachube fournit une API (Advanced Programming Interface) qui permet à une machine connectée à Internet, de fournir des données au serveur Pachube (ce que Pachube appelle des « feeds » – voir un exemple) dans un format compatible (JSON, XML, ou CSV). Bien entendu, il faut que la machine soit programmée pour accéder à Pachube. Il existe par exemple de nombreux programmes Arduino compatibles. La documentation de l’API permet toutefois à n’importe quel programmeur de créer un programme sur la plateforme de son choix. Pachube vous permet alors d’archiver vos données, de les visualiser et de les partager avec d’autres utilisateurs.
Pour utiliser Pachube, vous devez d’abord créer un compte. Il y a plusieurs formules, la première étant gratuite. Pachube vous fournira alors un identifiant avec lequel vous devrez configurer votre appareil. En fonction des options, vous disposerez de 5 à 250 feeds, d’un archivage allant de 1 mois à une durée indéterminée, et la possibilité ou non de créer des feeds privés.
II. Pour quoi faire ?
Pachube vous permet de créer facilement des graphiques, c’est la première utilisation qui saute aux yeux. Comment évolue la température de mon salon ou l’hygrométrie de mon jardin au cours du temps ? Pachube vous permet de l’enregistrer et de le visualiser.

Mais le plus intéressant, à mon avis, reste la possibilité de croiser les données de différents capteurs. Un tel réseau permettrait de mutualiser les informations entre systèmes domotiques. Vous n’avez pas d’anémomètre sur votre maison ? Votre voisin, lui, en a un et vous pouvez récupérer ses données et vous en servir pour remonter votre store électrique en cas de trop forte bourrasque. En échange, vous lui fournirez une information sur la présence de pluie qui lui permettra de retarder son arrosage automatique.
Ce genre de réseau permettrait également un maillage très fin pour des mesures météorologiques, par exemple.
Bien entendu, créer un programme pour Pachube nécessite de solides connaissances informatiques. Mais souhaitons que des appareils compatibles Pachube arrivent sous peu, simplifiant son utilisation pour les utilisateurs lambda.
















J’ai étudié un peu cette solution il y a peu de temps, dans le but d’envoyer les données receuillies par la Vera pour ensuite en avoir une représentation graphique, chose que ne sait pas faire la Vera. Il faut en effet avoir de bonnes notions de programmation, car la mise en place n’est pas si aisée :( Je n’ai pas encore réussi à faire ce que je voulais, mais dès que j’ai un peu e temps, je m’y remet, car cette solution est vraiment intéressante !
Il y a aussi open.sen.se, une sorte de pachube français fait par des anciens de Violet qui est prometteur, mais bizarrement il n’évolue pas vite:
http://open.sen.se/
Il y a un connecteur pachube d’ailleurs dans open.sen.se
Le plus intéressant je trouve dans cette solution c’est leur annonce du support d’xmpp, mais pour l’instant rien ne vient.
@Cédric: tu veux faire quoi sur pachube ? J’ai aussi un peu les même besoin de pousser quelques infos de la vera
Dernier article de Thomas:Installation d’un couple de serveurs dhcp et dns redondants
A partir de la Vera, l’idée serait par exemple de remonter les températures, humidité, voire également la consommation électrique. Pour ce dernier point, il y a une représentation graphique dispo sur la Vera, mais elle ne convient pas à tous les besoins :/
@Thomas
XMPP c’est pas mal en effet. J’avais un moment envisagé d’implémenter XMPP sur un automate AMX pour que le système me passe les alertes directement via la messagerie instantanée.
Quant à Open Sense, je pense qu’ils cherchent à gérer eux mêmes les interactions alors que Pachube ne fait que du datalogging, à charge pour des systèmes externes de venir piocher dans la base de données.
En tout cas, tout ce qui s’annonce pour l’avenir semble passionnant. En espérant que ça ne parte pas tous azimuts.
A+
Vincent
Google met à disposition des outils sympathiques pour ce représenter dynamiquement des données sous forme de graphe. Le point le plus compliqué est à mon avis d’envoyer les données de la Vera (vivement que je la reçoive…) vers une Spreadsheet Google.
Ensuite, un petit bout de code de Google Visualization API dans une page html et miracle, tout est en forme ! :mrgreen:
http://www.mathieu-gerard.be/share/graph.html
Allez, tiens, je viens de m’inscrire à la beta de Sen.se.
A+
Vincent
Voilà deux fonctions a mettre dans son startup lua, une pour patchube et l’autre pour sen.se
Bon j’ai vite fait, c’est à tester (je l’ai testée sur des valeurs ‘light’ d’un EZMotion)
Pour sense:
function my_send_sense (feed, value)local apikey = "API_KEY"
local base_url = "http://api.sen.se/events/"
local method = "POST"
require('ltn12')
local socket = require("socket")
local http = require("socket.http")
local json_data = "{ \"feed_id\": " .. feed .. ", \"value\": \"" .. value .. "\" }"
local response_body = {}
local response, status, header = http.request{
method = "POST",
url = base_url .. "?sense_key=" .. apikey,
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = string.len(json_data),
["sense_key"] = apikey
},
source = ltn12.source.string(json_data),
sink = ltn12.sink.table(response_body)
}
end
pour patchube:
function my_send_pachube (feed, datastream, value)local apikey = "API_KEY"
local base_url = "http://api.pachube.com/v2/feeds/"
local method = "PUT"
require('ltn12')
local socket = require("socket")
local http = require("socket.http")
local json_data = '{ "version":"1.0.0","datastreams":[ {"id":"' .. datastream .. '", "current_value":"' .. value .. '"}]}'
local response_body = {}
local response, status, header = http.request{
method = method,
url = base_url .. feed,
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = string.len(json_data),
["X-PachubeApiKey"] = apikey
},
source = ltn12.source.string(json_data),
sink = ltn12.sink.table(response_body)
}
end
Voilà, ensuite il suffit de créer une scène, déclenchée par timer (j’ai mis toutes les 5 minutes) avec un code lua qui appelle l’une, l’autre ou les deux.
Ici pour mon capteur de lumière:
local deviceID = 18local lumsalon = luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1", "CurrentLevel", deviceID)
my_send_pachube ("33991", "LightSalon", lumsalon)
my_send_sense("4167", lumsalon)
return true
Si j’ai le temps demain je posterais un peu plus de choses dans le forum micasa
A+
Thomas
Dernier article de Thomas:Installation d’un couple de serveurs dhcp et dns redondants