Actualités | Audio/Vidéo | Evènements | DIY | Domotique | Informatique | Maison | Mobile | Sécurité

Découverte de l'API de Koubachi : Mais comment exploiter un objet connecté via son API ?

Envoyer Imprimer PDF
Note des utilisateurs: / 5
MauvaisTrès bien 

Aujourd'hui, je vous présente un article multi-facettes. A la base, je souhaite vous présenter le second article que j'écris sur Koubachi. La dernière fois je vous ai parlé de ce capteur de plantes, mais je n'avais pas présenté son API qui permet de mieux l'intégrer à d'autres services. Nous allons voir ce point.

Mais pour aller plus loin, je vais vous montrer deux façons pour accéder une API à distance : Un accès en programmant en php, et un accès en utilisant des Google Scripts. Cette méthode pourra être réutilisée pour d'autres objets connectés.

Pour illustrer encore mieux cet exemple, nous allons publier les données extraites via l'API vers un service qui fait des graphiques. J'ai choisi thingspeak.com, mais on aurait en prendre un autre.

Introduction à l'API de Koubachi

Pour commencer, il faut récupérer les clés de Koubachi pour pouvoir utiliser son API. Les clés sont disponibles sur le site http://labs.koubachi.com. Inscrivez vous et vous obtiendrez les données suivantes pour votre capteur Koubachi.

Rappelons que Koubachi sait mesurer la lumière, l'humidité, la température et le niveau de sa pile. Nous allons pouvoir lire ces données en automatique en passant par son API.

Laps.koubachi.com, vous donnera aussi toutes les urls qu'on peut utiliser pour accéder directement différents types de données.

Koubachi peut faire une mesure sur demande (lorsqu'on clique sur le capteur). Sinon, il fait une seule mesure par jour pour suivre la santé de votre plante. On ne peut donc pas utiliser Koubachi comme thermostat car il n'y a pas assez de mesures. Mais l'API peut vous permettre de créer des alertes personnalisées : Message Karotz quand il faut arroser, quand il faut mettre Koubachi dans une nouvelle plante, ...

Si on appelle l'url suivante, on obtient donc les données courantes :

http://api.koubachi.com/v2/user/smart_devices?user_credentials=votrecrédential&app_key=votreclé

Il ne faut pas oublier de remplacer les valeurs en gras par vos informations.

Pour lire ces informations, nous avons 3 possibilités :

1/ Lire les infos depuis une box de domotique. On peut par exemple lire les données du fichier XML en utilisant un périphérique HTML eedomus. Je ne vous montrerais pas cet exemple qui est très simple.

2/ Lire les infos depuis un programme Php. Cette méthode vous oblige d'avoir une machine (PC, Raspberry, NAS, ...) permettant d'héberger le Php. Je vais vous montrer un exemple de code.

3/ Lire les infos depuis un script Google Scripts. Celà permet de faire un développement spécifique, tout en le laissant hébergé chez Google, donc pas besoin de PC. C'est une solution à la mode si vous n'avez pas peur d'héberger un script en dehors de votre domicile.

Dans la suite de cet article, je vous illustre le point 2 et le point 3.

 

Une classe Php pour accéder l'API de Koubachi

En prenant comme exemple le développement de Mickael sur la classe eedomus, j'ai fait une classe Php Koubachi pour accéder quelques unes des informations de l'API Koubachi. La classe est disponible ici. Vous pouvez l'utiliser et la modifier selon vos besoins.

Pour utiliser cette classe, vous devez créer un second fichier. Ce second fichier fait les appels à la classe puis envoie les informations aux services Thingspeak.com via une URL. Ce script est aussi disponible ici. Il ne faut pas oublier de changer les trois clés suivantes par :

- La première représente la clé crédential de Koubachi

- La deuxième représente la clé API de Koubachi

- La troisième représente la clé thingspeak du graphique que vous avez créé.

On peut vérifier que celà fonctionne en appelant ce script dans un navigateur web. Voici le résultat à obtenir.

Si vous programmez ce dernier script Php pour s'exécuter chaque jour. Vous constaterez que le service Thingspeak charge les données dans un graphe. On voit une démonstration à la fin de cet article.

 

Accéder l'API Koubachi via un script Google Scripts

On peut écrire le même script depuis l'éditeur de scripts de Google. On peut aussi programmer une exécution régulière dans Google Docs. Mais comment faire ?

Tout d'abord, il faut un compte Google Docs. Puis créez un document "Feuille de calcul". Et rendez vous dans le menu Outils, puis Editeur de scripts.

Puis créez le script suivant :

Le code complet est ici :

//--- Get Koubachi Information and send them to Thingspeak.com
//--- v1.01 (en production)
//--- Domotics, created on Jan 05th 2013
//---
//--- Changes:
//--- v1.01, a new graph is added to follow battery level
//---

function getKoubachi() {
var result = UrlFetchApp.fetch("http://api.koubachi.com/v2/user/smart_devices?user_credentials=eee&app_key=eee");
var contents = result.getContentText();
var doc = Xml.parse(contents, true);

var recent_temp = doc.smart_device_devices.smart_device_device.getElements("recent-temperature-reading-value")[0].getText();
recent_temp = recent_temp.substring(0,recent_temp.indexOf(" °C"));

var recent_light = doc.smart_device_devices.smart_device_device.getElements("recent-light-reading-value")[0].getText();
recent_light = recent_light.substring(0,recent_light.indexOf(" lx"));

var recent_moiss = doc.smart_device_devices.smart_device_device.getElements("recent-soilmoisture-reading-value")[0].getText();
recent_moiss = recent_moiss.substring(0,recent_moiss.indexOf("%"));

var recent_batt = doc.smart_device_devices.smart_device_device.getElements("virtual-battery-level")[0].getText();
//recent_batt = recent_batt.substring(0,recent_batt.indexOf("%"));

var results = UrlFetchApp.fetch("http://api.thingspeak.com/update?key=eeee&field1="+recent_temp+"&field2="+recent_light+"&field3="+recent_moiss+"&field4="+recent_batt);
return results;
}

N'oubliez pas de remplacer les mots en rouge par vos clés.

Ensuite, il faut tester le script en l'exécutant et en allant voir sur Thingspeak.com si vos valeurs sont chargées. Si c'est le cas, il faut maintenant programmer ce script en créant un déclencheur dans l'Editeur de scripts Google. Dans l'exemple ci-dessous, je programme la fonction toutes les 4 heures.

 

Et voilà, deux méthodes qui fonctionnent ... On peut bien sur personnaliser pour créer ses propres alertes.

 

Configuration Thingspeak

Dans les deux exemples précédents, je parle de thingspeak, regardons comment créer ce graphique. En fait, cette étape est un prérequis pour utiliser les deux scripts précédents.

Dans thingspeak, il faut créer un channel. Un channel est une sorte de base de données. Elle peut contenir plusieurs valeurs. Créons donc un channel pour les champs de Koubachi.

Dans le channel, sur le dernier onglet, vous trouvez l'url qu'il faut utiliser pour envoyer les données à Thingspeak. Sur cette URL, vous trouvez la clé à utiliser dans les deux scripts que je vous ai donné auparavant.

Sur le channel Thingspeak, il faut créer 4 champs pour accueillir la température, la lumière, l'humidité et le niveau de la batterie. L'ordre des champs est important.

Ensuite, on peut créer ses propres graphiques en précisant un titre, une taille, ...

Au final, dès que vous mettez en marche un des deux scripts précédents, vous verrez que les graphiques se remplissent.

Dans cet exemple, le graphique le plus utile est surement le niveau de la batterie. Les autres le sont moins car il n'ya qu'un relevé par jour ...

Au final, vous pouvez créez un graphique public sous thingspeak et utilisez le code HTML généré pour afficher ce graphique sur votre blog ou votre site internet.

 

En conclusion

Cet article illustre le cas de l'API Koubachi, mais on peut utiliser le même principe pour lire un compteur d'impulsion IPX800, ou l'API de la station météo NETATMO, ou l'API de votre balance Withings. Ensuite libre à vous de choisir votre méthode pour lire les données...

C'est la première fois que j'utilise les Google Scripts et je dois dire que je suis impressionné par les capacités offertes. On trouve énormément de tutorials sur le Internet. Il y en a qui font des alertes leboncoin, des machines à tweeter, des tableaux d'indicateurs, ... C'est surement une tendance à suivre car c'est très puissant.

Vous n'avez pas compris un point ? Vous vous posez une question ? Vous pouvez nous contacter via le bouton Assistance sur votre droite ou laissez nous un message au 09 75 18 51 41

Vous avez aimé cet article ? N’oubliez pas de le partager sur les réseaux sociaux pour soutenir TLD.

 

Cet article vous est proposé par Domotics: Domotics habite dans la région Toulousaine. Il est ingénieur en informatique et électronicien amateur. La domotique est pour lui une passion qu'il pratique depuis 1999. En 2003, il décide de partager ses expériences sur le magazine et le forum de touteladomotique.com.

En 2014, il crée sa société de conseils en Domotique ID2domotique.com et sa boutique en ligne laboutiquededomotique.com pour promouvoir la domotique sur mesure ... Profitez de l'expérience et l'expertise de Domotics en faisant appel à ses nouveaux services.

Mise à jour le Mardi, 08 Janvier 2013 23:36  

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Les Flux RSS de TLD
Instagram

Produits Partenaires

GCE Electronics est partenaire de Touteladomotique.com RFXCOM.com est partenaire de Touteladomotique.com



Liens Utiles

Boutiques Partenaires

Liens Utiles

Un don pour TLD ?

Pourquoi faire un don ?

Publicité

Espaces publicitaires à louer
Contactez-nous

Connexion