function Calendrier() { var DateDebut = new Date(); var DateFin = new Date(); var resultat; var API_Periph; var API_Valeur; DateDebut.setTime(DateFin.getTime() - (5*60*1000)); //20 minutes de moins que DateFin var Cal = CalendarApp.getCalendarsByName('Domotique')[0]; var Events = Cal.getEvents(DateDebut, DateFin); /*API des périphériques EEDOMUS Volet roulant séjour : xxxx Volet roulant cuisine : xxxx Notifications : xxx */ for (i in Events) { var Titre = Events[i].getTitle(); // On récupère le titre de l'événement var Description = Events[i].getDescription(); // On récupère la description de l'événement var Error = null; // On initialise le retour d'erreur à null if (Description.indexOf("Action réalisée le") == -1) // Si la description de l'événement contient "Action réalisée le" alors aucune action { switch(Titre) { case "Ouvrir volets" : Error = Error || AppelAPI("xxxx","100"); // Ouverture volet roulant séjour Error = Error || AppelAPI("xxxx","100"); // Ouverture volet roulant cuisine Error = Error || AppelAPI("xxxx","12"); // Notification ouverture volets break; case "Fermer volets" : Error = Error || AppelAPI("xxxx","0"); // Fermeture volet roulant séjour //Error = Error || AppelAPI("xxxx","100"); // Fermeture volet roulant cuisine Error = Error || AppelAPI("xxxx","11"); // Notification fermeture volets break; } var Maintenant = new Date(); if (Error == false) { Events[i].setDescription("Action réalisée le " + Maintenant.toLocaleString()); // Inscrit "Action réalisée le" + date dans le descriptif de l'événement pour éviter qu'il ne se reproduise } else if (Error == true) { if (Description.indexOf("Erreur lors de l'appel d'une API eedomus") < 0) { Events[i].setDescription("Erreur lors de l'appel d'une API eedomus le " + Maintenant.toLocaleString()); // Inscrit "Erreur lors de l'appel d'une API" + date dans le descriptif de l'événement pour éviter qu'il ne se reproduise // envoi d'un mail de rapport d'erreur MailApp.sendEmail("monemail@gmail.com", "Erreur du script domotique", "Une erreur s'est produite lors à la réalisation de l'événement [" + Titre + "]"); } } } } } function AppelAPI(PeriphID, PeriphValue) { var Reponse; Reponse = UrlFetchApp.fetch("http://api.eedomus.com/set?action=periph.value&periph_id=" + PeriphID + "&value=" + PeriphValue + "&api_user=XXXXXXX&api_secret=XXXXXXXX"); Reponse = Reponse.getContentText(); Logger.log (Reponse); return(Reponse.indexOf("error_code") >= 0); }