Surveillance maison et agenda google

Comment interfacer la Zibase avec Homeseer ? Comment programmer votre Zibase avec un script ? Comment capturer les informations de la Zibase ...

Surveillance maison et agenda google

Messagede misterbebel » 17 FĂ©v 2015, 21:36

Bonjour Ă  tous,

J'ai déjà réussi à programmer un script google qui regarde un agenda google (où j'ai spécifié des heure "ouverture volet" et des heures "fermetures volet" qui me sert pdt mes vacances) et actionne mes volets.

J'aimerais aller plus loin : ma femme fait des horaires de poste (7h-14h, 14h-23h ou encore 7h-17h), elle note ses postes sur son agenda google avec comme nom "boulot", je souhaiterais que lorsqu'elle est au boulot, en semaine (après 8h30 et avant 18h, car sinon je suis à la maison) que si un détecteur se déclenche il se passe un scénario (envoi push par exemple).

Je ne vois pas comment procéder au vu des nombreux aléas à prendre en compte, pourriez vous me donner une piste ? Je pensais éventullement un script google qui passe une variable à 0 si ma femme bosse et 1 sinon....

Merci

Misterbebel
misterbebel
Membre Actif
 
Messages: 36
Inscription: 23 DĂ©c 2009, 15:34

Re: Surveillance maison et agenda google

Messagede patmtp35 » 18 FĂ©v 2015, 11:30

Zibase Pro + Chacon + XDD + Oregon + CM119 +Z-Wave
Imperihome => asus ME103K + Cdisplay YAste
4 Foscam => Videostation
RPI => Teleinfo
RPI => RASPBMC
RPI => OPENELEC
RPI => SQUEEZEPLAYER
Proliant N54l => Esxi 5.5 + Xpenology DSM4.3 => (WEB + PHPMYADMIN + Videostation) + 2008R2 => (Supervision => WSUS) + Xpenology DSM5.0 (Multimedia) + JEEDOM VM
NAS Thecus N0503 => Sauvegarde
patmtp35
Dieu de domotique
 
Messages: 465
Inscription: 19 Mar 2012, 21:43

Re: Surveillance maison et agenda google

Messagede misterbebel » 18 FĂ©v 2015, 21:30

Merci, ça peut être une base.

Est ce que qqn connait la commande pour récupérer via les scripts google et l'agenda google les heures de début et de fin d'un évenement ?
misterbebel
Membre Actif
 
Messages: 36
Inscription: 23 DĂ©c 2009, 15:34

Re: Surveillance maison et agenda google

Messagede misterbebel » 18 FĂ©v 2015, 23:51

Je m'auto-répond :
Dans google script:
Code: Tout sélectionner
var ZIBASE = "";
var TOKEN = "";
var CAL_ID = '';
var KEYWORD = "boulot";
var Z_VARIABLE_DEBUT = 16; // V16
var Z_VARIABLE_FIN = 17; // V17

function recup_heure_boulot_cyl() {
  var today = new Date(); // recupĂ©ration de la date du jour
  var cal = CalendarApp.getCalendarById(CAL_ID); // Connexion au calendrier
  var oldTimeZone = cal.getTimeZone(); // RĂ©cupĂ©rer le fuseau par dĂ©faut
  cal.setTimeZone("Europe/Paris"); // Affecter le fuseau local
  var events = cal.getEventsForDay(today, {search: KEYWORD}); // RĂ©cupĂ©rer tous les Ă©vènements du jour comportant le mot KEYWORD
  var nbre=events.length;
  for (i=0;i<events.length;i++) { // Parcourir tous les Ă©vènements
    var h_debut = Utilities.formatDate(events[i].getStartTime(), "GMT+1", "HH"); //Heure de dĂ©but
    var h_fin = Utilities.formatDate(events[i].getEndTime(), "GMT+1", "HH"); //Heure de fin
  }
  if (h_debut == 07) var h_debut = 09;//car je suis Ă  la maison jusque 8h30
  if (h_fin == 23) var h_fin = 17;//car je rentre après 18h
  cal.setTimeZone(oldTimeZone); // en fin de script, on rĂ©affecte le fuseau d'origine
  envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN +
  "&action=rowzibasecommand&param1=5&param2="+ h_debut + "&param3=1&param4=" + Z_VARIABLE_DEBUT);
  envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN +
  "&action=rowzibasecommand&param1=5&param2="+ h_fin + "&param3=1&param4=" + Z_VARIABLE_FIN);
}

function remise_zero() {
  var h_debut = 00;
  var h_fin = 00;
  envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN +
  "&action=rowzibasecommand&param1=5&param2="+ h_debut + "&param3=1&param4=" + Z_VARIABLE_DEBUT);
  envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN +
  "&action=rowzibasecommand&param1=5&param2="+ h_fin + "&param3=1&param4=" + Z_VARIABLE_FIN);
}


Ensuite, je déclenche via les déclencheurs :
    function remise_zero() entre zéro et 1H
    function recup_heure_boulot_cyl() entre 1H et 2H

Puis j'ai crée un scénario qui s'exécute si S3>=v16 et S3<=V17 et si le détecteur se déclenche.

Je compléterais le script avec mon agenda : si je suis en congés alors ne pas exécuter le script.
misterbebel
Membre Actif
 
Messages: 36
Inscription: 23 DĂ©c 2009, 15:34

Re: Surveillance maison et agenda google

Messagede misterbebel » 31 Mar 2015, 18:19

Voici une nouvelle version du script. Celui ci compare l'heure actuelle avec les heures de début et de fin de l'évenement boulot. Il est lancé toutes les minutes. Si l'heure actuelle correspond à l'heure de début, et que l'on est pas en weekend, il passe la variable V16 à 1. Si l'heure actuelle correspond à l'heure de fin alors il passe la variable V16 à 0.

Code: Tout sélectionner
function recup_heure_boulot() {
  var ZIBASE = "'bip'";
  var TOKEN = "'bip'";
  var CAL_ID = ''bip'@gmail.com';
  var KEYWORD = "boulot";
  var Z_VARIABLE_ALARME = 16; // V16
  var ACTIVATION = 1;
  var DESACTIVATION = 0;
  var WEEKEND = 0;
 
  var cal = CalendarApp.getCalendarById(CAL_ID); // Connexion au calendrier (id_calendar Ă  renseigner)
  var oldTimeZone = cal.getTimeZone(); // RĂ©cupĂ©rer le fuseau par dĂ©faut
  cal.setTimeZone("Europe/Paris"); // Affecter le fuseau local
  var today = new Date(); // recupĂ©ration de la date du jour
  var heure_actuelle = Utilities.formatDate(today,  "Europe/Paris","HH:mm"); //Heure actuelle
  var events = cal.getEventsForDay(today, {search: KEYWORD}); // RĂ©cupĂ©rer tous les Ă©vènements du jour comportant le mot KEYWORD
  var nbre=events.length;
 
  for (i=0;i<events.length;i++) { // Parcourir tous les Ă©vènements
   var h_debut = Utilities.formatDate(events[i].getStartTime(), "Europe/Paris", "HH:mm"); //Heure de dĂ©but
    var h_fin = Utilities.formatDate(events[i].getEndTime(), "Europe/Paris", "HH:mm"); //Heure de fin
    var jour = Utilities.formatDate(today, "Europe/Paris", "E"); //recup jour format Sat ou Sun ou...
  }
 

  if (jour =='Sat') var WEEKEND = 1;
  if (jour =='Sun') var WEEKEND = 1;

  if (WEEKEND==0) {//nous ne sommes pas en WEEKEND
    if (heure_actuelle == h_debut){
      envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN +
  "&action=rowzibasecommand&param1=5&param2="+ ACTIVATION + "&param3=1&param4=" + Z_VARIABLE_ALARME);
      MailApp.sendEmail(''bip'@gmail.com', 'Alarme Automatique', 'Activation alarme Ă  ' + heure_actuelle);
    }
    if (heure_actuelle == h_fin) {
      envoi = UrlFetchApp.fetch("https://zibase.net/m/zapi_remote_zibase_set.php?device=" + ZIBASE + "&token="+ TOKEN +
  "&action=rowzibasecommand&param1=5&param2="+ DESACTIVATION + "&param3=1&param4=" + Z_VARIABLE_ALARME);
   MailApp.sendEmail(''bip'@gmail.com', 'Alarme Automatique', 'DĂ©sactivation alarme Ă  ' + heure_actuelle);
    }
    }
  }
  cal.setTimeZone(oldTimeZone); // en fin de script, on rĂ©affecte le fuseau d'origine
}
misterbebel
Membre Actif
 
Messages: 36
Inscription: 23 DĂ©c 2009, 15:34


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique


cron