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.

vendredi 11 mai 2012

Channels ThingSpeak

Pour récupérer un flux de données et les visualiser sur ThingSpeak , il faut créer un Channel (en utilisant le bouton "CREATE A NEW CHANNEL".
Il faut remplir les champs correspondants, en particulier lui donner un nom


Channel ID:2..2
Name:Total Heures Pleines
Write API Key:P5...............LS
Description:
Tags:
Entries:5103
Created:Mon, Apr 23 at 3:27 pm
Latitude:
Longitude:
Elevation:
Field 1:Field Label 1


Pour envoyer des données, il suffit ensuite d'envoyer l'adresse correspondante :

http://api.thingspeak.com/update?key=P5B.......LS&field1=valeur_à envoyer


Vous pouvez utiliser une box domotique qui permet de faire ca, un serveur chez vous ou à distance...Personnellement, j'utilise Google Apps qui permet d'excecuter des scripts à intervalle donné, directement sur les serveurs de Google ! A voir dans un prochain post..



mercredi 9 mai 2012

MYXYTY et protocole X2D

Pour l'alarme, je me suis dirigé vers MYXYTY, car cette  solution utilise le protocole X2D de Delta Dore, et rend donc les accessoires compatibles entres eux (dans une certaine limite).

Le système MYDOMOKIT fonctionne avec un PC auquel est relié une clé USB qui envoie et recoit les informations des détecteurs. Le driver pour cette clé se nomme TYDOM 360 ! On voit le point commun avec Delta Dore est son TYDOM 350.

Le coût de cette clé USB est largement inférieur à leur box, et avec un PC portable (acheté sur le bon coin 40€, ecran HS) qui fonctionne 24/24h pour une consommation de 10 Watt (Atom, et sécurisé avec batterie en cas de coupure de courant !)

Les alertes sont gérés par le serveur de MYXYTY, et on peut recevoir des mails, SMS, appels..pour toute intrusion, coupure internet..


Astuces économiques pour le système MYXYTY :
  • Comme les alertes par SMS sont payantes, il suffit de choisir une alerte par mail (gratuite) et de configurer chez son opérateur téléphonique (Orange pour moi) une alerte SMS pour certain mail (filtre myxyty)  ! Chez Orange, on a droit a 50 alertes SMS gratuites par mois.
  • Au lieu d'acheter la sirène intérieur qui est assez onéreuse, il suffit de prendre une prise télécommandable et de brancher une sirène low cost que l'on trouve assez facilement pour 10€. Il faut ensuite créer un scénario qui déclenche cette prise sur une détection.

dimanche 6 mai 2012

ThingHTTP sur ThingSpeak

ThingSpeak est un service sur le web qui permet d'enregistrer vos données.Il permet aussi de les filtrer, de les visualiser...
Le mieux est de voir un premier exemple pour en comprendre l'utilité.

Objectif : Récupérer l'index du compteur électrique qui est disponible sur le TYDOM 350, présenté dans le post précédent.
  • Après avoir créé un compte , il faut créer une APPS , thingHTTP disponible ici :  https://www.thingspeak.com/apps
  • Create a new request et mettre les paramètre suivants :
Name:Index Total Compteur HC
API Key:73QM....................TZ

URL:http://IP_TYDOM/P/X2D.shtml
HTTP Auth Username:
HTTP Auth Password:
Method:GET
Content Type:
HTTP Version:1.1
Host:
Headers:
Body:
Parse String:number(//body/table[2]/descendant::table[@id="liste"]/tr[3]/td[2])
Created:Mon, Apr 23 at 11:07 pm

  • Maintenant , à l'adresse suivante : http://api.thingspeak.com/apps/thinghttp/send_request?api_key=.... , vous obtenez la valeur de votre index Heures Creuses lu sur le TYDOM 350 (remplacer bien sur les ... par votre API Key)
  • Vous avez maintenant une requête http que vous pouvez intégrer dans vos script (par exemple dans une box domotique comme la zibase, dans un logiciel domotique comme homidom...)
  • En jouant sur les valeur du filtre de la page Web (PARSE String en XPATH), vous pouvez récupérer l'index Heures pleine, Heures Creuses, la consommation pour le chauffage et l'eau chaude sanitaire.
De mon coté j'utilise Google APPS pour récupérer à intervalle régulier la valeur de mon compteur électrique, et le renvoyer à ThingSpeak pour stocker les données. A voir dans un prochain post...