lundi 14 mai 2012

Scripts Google APPS

Pour faire tourner vos scripts, vous pouvez utiliser votre propre serveur, mais vous pouvez aussi utiliser des serveurs extérieurs, comme les services de Google qui vous permettent d''exécuter vos scripts à intervalles réguliers.

Objectif : Récupérer toutes les 5 minutes l'index du compteur électrique lu sur le TDYOM 350, et le renvoyer à  ThingSpeak pour enregistrer les données.

  • Il faut déjà ouvrir une Feuille de calcul avec Google Documents (maintenant dans Google Drive)
  • Ensuite dans >Outils >Gestionnaire de Script , vous faites New..Vous pouvez maintenant écrire une fonction de ce type :
function EnvoiThingSpeak() {

   var rep = UrlFetchApp.fetch("http://api.thingspeak.com/apps/thinghttp/send_request?api_key=05...5F9");
  
  var TotalHP = rep.getContentText();
   
  UrlFetchApp.fetch("http://api.thingspeak.com/update?key=P5...LS&field1="+TotalHP);
   
}

Explication du code :
rep est la variable que l'on obtient avec ThingHTTP (il faut mettre api_key= correspondant à cette requête) lorsqu'on interroge le TYDOM 350 (voir un post précédent).
TotalHP est mis en forme texte.
La dernière ligne permet de renvoyer la valeur TotalHP sur le channel de ThingSpeak correspondant, que l'on a créé auparavant (il faut mettre key= valeur du channel sur lequel on veut envoyer la valeur).

Avec ces 3 lignes, on arrive donc à lire notre index électrique sur le TYDOM et à le renvoyer à ThingSpeak.
  • Il faut maintenant exécuter ce script régulièrement.
Pour cela, sur votre fonction, il faut aller sur >Ressources >Déclencheurs du script actuel, et choisir l'option Time-Driven , en mettant "toutes les 5 minutes" par exemple.
  • Après avoir accordé les autorisations à ce script, vous pouvez le lancer, et toutes les 5 minutes, ThingSpeak sera mis à jour.
En retournant sur le channel correspondant sur ThingSpeak, vous pouvez admirer le résultat, et voir le graphique correspondant :
Evolution de l'index du compteur électrique en fonction du temps.

Avec le Tydom 350, couplé à un Tywatt, on peut créer plusieurs channels (ou champs), pour voir l'évolution de la consommation en heures pleines ou creuses, la consommation du chauffage, du chauffe eau.

En développant ces scripts, on pourrait tracer la valeur par jour par exemple.

Il y a surement de nombreuses applications à ce système, qui permet de se passer d'un PC qui tourne 24/24, et qui simplifie les scripts pour ceux qui , comme moi, ne sont pas les champions de la programmation.