Pour terminer le script, la structure XML est renvoyé au demandeur.
Par conséquent le service s’est arrêté le 18 novembre 2015. Depuis cette date, il n’est plus possible de récupérer les informations des calendriers Google via un flux XML.
var urlCalled="http://api.eedomus.com/set?action=periph.value&periph_id=" + PeriphID + "&value=" + PeriphValue + "&api_user="+id_api_user+"&api_secret="+pass_api_user;
Reponse = UrlFetchApp.fetch(urlCalled);
ReponseText = Reponse.getContentText();
Logger.log (ReponseText);
var urlCalled="http://api.eedomus.com/set?action=periph.value&periph_id=" + PeriphID + "&value=" + PeriphValue + "&api_user="+id_api_user+"&api_secret="+pass_api_user;
Une erreur [%3Cbr%3E8h45%3Accc] Fri Dec 04 22:05:15 CET 2020 INFO: Jour=Jour
Fri Dec 04 22:05:15 CET 2020 INFO: appelAPI:216xxxx/22h30:garage
Fri Dec 04 22:05:15 CET 2020 INFO: {
"success": "0",
"body":
{
"error_code": "23",
"error_msg": "HTTP protocol not allowed on your account."
}
}
Fri Dec 04 22:05:16 CET 2020 INFO: Jour=Demain
Fri Dec 04 22:05:16 CET 2020 INFO: appelAPI:216xxxx/<br>8h45:garage
Fri Dec 04 22:05:16 CET 2020 INFO: {
"success": "0",
"body":
{
"error_code": "23",
"error_msg": "HTTP protocol not allowed on your account."
}
}
Il semble que ton compte ne permette pas de faire des requetes http. As tu bien autorisé les actions du script à la premiere execution?
//***********************************************************************************************//
// Script Google pour mise à Jour Eedomus
// Script réalisé par Eedomusbox basé sur http://www.maison-et-domotique.com/12622-script-google-google-agenda-box-domotique/
// Il permet de recupérer un calendrier Poubelle/tri et un calendrier Déchèterie
// Version 1.0
// revu par Tibhix pour ajustements:
// Un seul calendrier Gmail est suffisant contenant tout ce que l'on veut gérer.
// dans le cas présenté:
// -RDV = Rendez-vous de la journée + lendemain (conditionne l'allumage des lumières extérieures)
// -HOR = Horaire de travail de la journée + lendemain (conditionne le chauffage dans la salle de bain)
// -PRS = Présence de la journée + lendemain (conditionne les températures de consignes et chauffe-eau)
//***********************************************************************************************//
//***********************************************************************************************//
// Déclaration des variables globales (A PERSONNALISER)
//***********************************************************************************************//
// Nom du calendrier Gmail
var IDCalendrier ="AgendaEedomus";
var email_de_retour ="xxxxxx@gmail.com";
// ID périphériques horaires
var pHorJour ="2207235";
var pHorDemain ="2207234";
// ID périphériques RDV
var pRdvJour="2192722";
var pRdvDemain="2175300";
// ID périphériques présences
var pPrsJour="2207232";
var pPrsDemain="2207233";
var pPrsApresDemain ="2207211";
// ID + mdp API eedomus
var id_api_user="yyyyyy";
var pass_api_user="zzzzzzzzzzzzzzzzzzz";
//***********************************************************************************************//
// Fin de Déclaration des variables globales
//***********************************************************************************************//
// Initialisation des variables de retour
//***********************************************************************************************//
// NE PAS MODIFIER
//***********************************************************************************************//
var Horaire="";
var Presence="";
function Calendrier()
{
// Définition Variable
var JourDebut = new Date();
var JourFin = new Date();
var DemainDebut = new Date();
var DemainFin = new Date();
var ApresDemainDebut = new Date();
var ApresDemainFin = new Date();
var cptRDV=0;
// Definition des dates
JourDebut.setHours(0,0,0,0);
JourFin.setTime( JourDebut.getTime() + ((60*60*24) * 1000) ); //jour courant
DemainDebut = JourFin;
DemainFin.setTime( DemainDebut.getTime() + ((60*60*24) * 1000) ); //1 jour de plus
ApresDemainDebut = DemainFin;
ApresDemainFin.setTime( ApresDemainDebut.getTime() + ((60*60*24) * 1000) ); //2 jour de plus
// Recherche du différent calendrier pour mise à jour des Périphériques
Read_calendar(IDCalendrier);
//***********************************************************************************************//
//Fonction Read_calendar
// Var 1 = Nom du calendrier
//***********************************************************************************************//
function Read_calendar(Fv_Cal)
{
var Cal = CalendarApp.getCalendarsByName(Fv_Cal)[0];
var EvenementsJour = Cal.getEvents(JourDebut, JourFin); //Journée d'aujourd'hui
var EvenementsDemain = Cal.getEvents(DemainDebut, DemainFin); // Journée de demain
var EvenementsApresDemain = Cal.getEvents(ApresDemainDebut, ApresDemainFin); // Journée de demain
// Assignation des evenements aux periphériques
Set_Eedomus_Events( EvenementsJour,"Jour");
Set_Eedomus_Events( EvenementsDemain,"Demain");
Set_Eedomus_Events( EvenementsApresDemain,"ApresDemain");
}
//***********************************************************************************************//
// Fonction Set_Eedomus_Events
//***********************************************************************************************//
function Set_Eedomus_Events(FV_Events,LeJour)
{
Logger.log("Jour="+LeJour);
var EventTexte = '';
var ListeEventsRDV = '';
switch (LeJour)
{
case "Jour":
IDPeriphRDV = pRdvJour;
IDPeriphHOR = pHorJour;
IDPeriphPRS = pPrsJour;
break;
case "Demain":
IDPeriphRDV=pRdvDemain;
IDPeriphHOR=pHorDemain;
IDPeriphPRS = pPrsDemain;
break;
case "ApresDemain":
//IDPeriphRDV=pRdvApresDemain;
//IDPeriphHOR=pHorApresDemain;
IDPeriphPRS = pPrsApresDemain;
break;
case defaut:
//Nothing
break;
}
// S'il n'y a aucun événement c'est que c'est égal à RAS
if ( FV_Events.length == 0 )
{
Error = Error || AppelAPI(IDPeriphRDV , 'aucun' ); // Mise à jour RDV
Error = Error || AppelAPI(IDPeriphHOR , 'aucun' ); // Mise à jour HOR
Error = Error || AppelAPI(IDPeriphPRS , 'maison' ); // Mise à jour PRS
}
else
{
for (i in FV_Events)
{
var Titre = FV_Events[i].getTitle(); // On récupère le titre de l’événement
var Type = Titre.substring(0,3); // Type de l'evenement
var ResteTitre = Titre.substring(4);
// Si le type n'est pas du genre "XXX:", on assume que c'est un RDV
if (Titre.substring(3,4)!=":")
{
Type="RDV";
ResteTitre=Titre;
}
var Description = FV_Events[i].getDescription(); // On récupère la description de l’événement
var Error = null; // On initialise le retour d’erreur à null
var Minutes = FV_Events[i].getEndTime().getMinutes();
if (Minutes<10 ) { Minutes = '0'+Minutes;}
var StartTime = FV_Events[i].getStartTime().getHours()+'h'+Minutes;
Minutes = FV_Events[i].getEndTime().getMinutes();
if (Minutes<10 ) { Minutes = '0'+Minutes;}
var EndTime = FV_Events[i].getEndTime().getHours()+'h'+Minutes;
// Definition de l'evenement
EventTexte = EventTexte+'_'+Type+StartTime +'-'+ EndTime +':'+ Titre ;
switch(Type)
{
case "HOR":
Horaire=ResteTitre;
break;
case "RDV":
if (cptRDV==0) {ListeEventsRDV=StartTime+':'+ResteTitre;}
else {ListeEventsRDV=ListeEventsRDV+'<br>'+StartTime+':'+ResteTitre;}
cptRDV = cptRDV+1;
break;
case "PRS":
Presence=ResteTitre;
break;
case defaut:
//Nothing
break;
}
}
// Ecriture des données
// HOR
if ( Horaire=="") { Horaire="aucun";} // Mise à jour par défaut
// Renseignement du périphérique
Error = Error || AppelAPI( IDPeriphHOR, Horaire);
// PRS
if ( Presence=="") { Horaire="maison";} // Mise à jour par défaut
// Renseignement du périphérique
Error = Error || AppelAPI( IDPeriphPRS, Presence);
// RDV
if ( ListeEventsRDV=="") { ListeEventsRDV="aucun";} // Mise à jour par défaut
// Renseignement du périphérique
Error = Error || AppelAPI( IDPeriphRDV, ListeEventsRDV);
}
}
//***********************************************************************************************//
// Fonction
//***********************************************************************************************//
function AppelAPI(PeriphID, PeriphValue)
{
Logger.log ("appelAPI:"+PeriphID+"/"+PeriphValue);
var Reponse;
var ReponseText;
PeriphValue = encodeURIComponent(PeriphValue, "UTF-8");
var urlCalled="http://api.eedomus.com/set?action=periph.value&periph_id=" + PeriphID + "&value=" + PeriphValue + "&api_user="+id_api_user+"&api_secret="+pass_api_user;
Reponse = UrlFetchApp.fetch(urlCalled);
ReponseText = Reponse.getContentText();
Logger.log (ReponseText);
if (ReponseText.indexOf("error_code") >= 0)
{
var body = Logger.getLog();
MailApp.sendEmail(email_de_retour , " Erreur du script domotique ", " Une erreur [" + PeriphValue + "] "+ body + "URL:"+urlCalled);
}
return(ReponseText.indexOf("error_code") >= 0);
}
}
Christophe a écrit:
function Calendrier()
{
// Définition Variable
var JourDebut = new Date();
var JourFin = new Date();
var DemainDebut = new Date();
var DemainFin = new Date();
var ApresDemainDebut = new Date();
var ApresDemainFin = new Date();
var cptRDV=0;
// Definition des dates
JourDebut.setHours(0,0,0,0);
JourFin.setTime( JourDebut.getTime() + ((60*60*24) * 1000) ); //jour courant
DemainDebut = JourFin;
DemainFin.setTime( DemainDebut.getTime() + ((60*60*24) * 1000) ); //1 jour de plus
ApresDemainDebut = DemainFin;
ApresDemainFin.setTime( ApresDemainDebut.getTime() + ((60*60*24) * 1000) ); //2 jour de plus
//***********************************************************************************************//
// Script Google pour mise à Jour Eedomus
// Script réalisé par Eedomusbox basé sur http://www.maison-et-domotique.com/12622-script-google-google-agenda-box-domotique/
// Il permet de recupérer un calendrier Poubelle/tri et un calendrier Déchèterie
// Version 1.0
// revu par Tibhix pour ajustements:
// Un seul calendrier Gmail est suffisant contenant tout ce que l'on veut gérer.
// dans le cas présenté:
// -RDV = Rendez-vous de la journée + lendemain (conditionne l'allumage des lumières extérieures)
// -HOR = Horaire de travail de la journée + lendemain (conditionne le chauffage dans la salle de bain)
// -PRS = Présence de la journée + lendemain (conditionne les températures de consignes et chauffe-eau)
//***********************************************************************************************//
//***********************************************************************************************//
// Déclaration des variables globales (A PERSONNALISER)
//***********************************************************************************************//
// Nom du calendrier Gmail
var IDCalendrier ="AgendaEedomus";
var email_de_retour ="xxxxxx@gmail.com";
// ID périphériques horaires
var pHorJour ="2207235";
var pHorDemain ="2207234";
// ID périphériques RDV
var pRdvJour="2192722";
var pRdvDemain="2175300";
// ID périphériques présences
var pPrsJour="2207232";
var pPrsDemain="2207233";
var pPrsApresDemain ="2207211";
// ID + mdp API eedomus
var id_api_user="yyyyyy";
var pass_api_user="zzzzzzzzzzzzzzzzzzz";
//***********************************************************************************************//
// Fin de Déclaration des variables globales
//***********************************************************************************************//
// Initialisation des variables de retour
//***********************************************************************************************//
// NE PAS MODIFIER
//***********************************************************************************************//
var Horaire="";
var Presence="";
function Calendrier()
{
// Définition Variable
var JourDebut = new Date();
var JourFin = new Date();
var DemainDebut = new Date();
var DemainFin = new Date();
var ApresDemainDebut = new Date();
var ApresDemainFin = new Date();
var cptRDV=0;
// Definition des dates
JourDebut.setHours(0,0,0,0);
JourFin.setTime( JourDebut.getTime() + ((60*60*24) * 1000) ); //jour courant
DemainDebut = JourFin;
DemainFin.setTime( DemainDebut.getTime() + ((60*60*24) * 1000) ); //1 jour de plus
ApresDemainDebut = DemainFin;
ApresDemainFin.setTime( ApresDemainDebut.getTime() + ((60*60*24) * 1000) ); //2 jour de plus
// Recherche du différent calendrier pour mise à jour des Périphériques
Read_calendar(IDCalendrier);
//***********************************************************************************************//
//Fonction Read_calendar
// Var 1 = Nom du calendrier
//***********************************************************************************************//
function Read_calendar(Fv_Cal)
{
var Cal = CalendarApp.getCalendarsByName(Fv_Cal)[0];
var EvenementsJour = Cal.getEvents(JourDebut, JourFin); //Journée d'aujourd'hui
var EvenementsDemain = Cal.getEvents(DemainDebut, DemainFin); // Journée de demain
var EvenementsApresDemain = Cal.getEvents(ApresDemainDebut, ApresDemainFin); // Journée de demain
// Assignation des evenements aux periphériques
Set_Eedomus_Events( EvenementsJour,"Jour");
Set_Eedomus_Events( EvenementsDemain,"Demain");
Set_Eedomus_Events( EvenementsApresDemain,"ApresDemain");
}
//***********************************************************************************************//
// Fonction Set_Eedomus_Events
//***********************************************************************************************//
function Set_Eedomus_Events(FV_Events,LeJour)
{
Logger.log("Jour="+LeJour);
var EventTexte = '';
var ListeEventsRDV = '';
switch (LeJour)
{
case "Jour":
IDPeriphRDV = pRdvJour;
IDPeriphHOR = pHorJour;
IDPeriphPRS = pPrsJour;
break;
case "Demain":
IDPeriphRDV=pRdvDemain;
IDPeriphHOR=pHorDemain;
IDPeriphPRS = pPrsDemain;
break;
case "ApresDemain":
//IDPeriphRDV=pRdvApresDemain;
//IDPeriphHOR=pHorApresDemain;
IDPeriphPRS = pPrsApresDemain;
break;
case defaut:
//Nothing
break;
}
// S'il n'y a aucun événement c'est que c'est égal à RAS
if ( FV_Events.length == 0 )
{
Error = Error || AppelAPI(IDPeriphRDV , 'aucun' ); // Mise à jour RDV
Error = Error || AppelAPI(IDPeriphHOR , 'aucun' ); // Mise à jour HOR
Error = Error || AppelAPI(IDPeriphPRS , 'maison' ); // Mise à jour PRS
}
else
{
for (i in FV_Events)
{
var Titre = FV_Events[i].getTitle(); // On récupère le titre de l’événement
var Type = Titre.substring(0,3); // Type de l'evenement
var ResteTitre = Titre.substring(4);
// Si le type n'est pas du genre "XXX:", on assume que c'est un RDV
if (Titre.substring(3,4)!=":")
{
Type="RDV";
ResteTitre=Titre;
}
var Description = FV_Events[i].getDescription(); // On récupère la description de l’événement
var Error = null; // On initialise le retour d’erreur à null
var Minutes = FV_Events[i].getEndTime().getMinutes();
if (Minutes<10 ) { Minutes = '0'+Minutes;}
var StartTime = FV_Events[i].getStartTime().getHours()+'h'+Minutes;
Minutes = FV_Events[i].getEndTime().getMinutes();
if (Minutes<10 ) { Minutes = '0'+Minutes;}
var EndTime = FV_Events[i].getEndTime().getHours()+'h'+Minutes;
// Definition de l'evenement
EventTexte = EventTexte+'_'+Type+StartTime +'-'+ EndTime +':'+ Titre ;
switch(Type)
{
case "HOR":
Horaire=ResteTitre;
break;
case "RDV":
if (cptRDV==0) {ListeEventsRDV=StartTime+':'+ResteTitre;}
else {ListeEventsRDV=ListeEventsRDV+'<br>'+StartTime+':'+ResteTitre;}
cptRDV = cptRDV+1;
break;
case "PRS":
Presence=ResteTitre;
break;
case defaut:
//Nothing
break;
}
}
// Ecriture des données
// HOR
if ( Horaire=="") { Horaire="aucun";} // Mise à jour par défaut
// Renseignement du périphérique
Error = Error || AppelAPI( IDPeriphHOR, Horaire);
// PRS
if ( Presence=="") { Horaire="maison";} // Mise à jour par défaut
// Renseignement du périphérique
Error = Error || AppelAPI( IDPeriphPRS, Presence);
// RDV
if ( ListeEventsRDV=="") { ListeEventsRDV="aucun";} // Mise à jour par défaut
// Renseignement du périphérique
Error = Error || AppelAPI( IDPeriphRDV, ListeEventsRDV);
}
}
//***********************************************************************************************//
// Fonction
//***********************************************************************************************//
function AppelAPI(PeriphID, PeriphValue)
{
Logger.log ("appelAPI:"+PeriphID+"/"+PeriphValue);
var Reponse;
var ReponseText;
PeriphValue = encodeURIComponent(PeriphValue, "UTF-8");
var urlCalled="http://api.eedomus.com/set?action=periph.value&periph_id=" + PeriphID + "&value=" + PeriphValue + "&api_user="+id_api_user+"&api_secret="+pass_api_user;
Reponse = UrlFetchApp.fetch(urlCalled);
ReponseText = Reponse.getContentText();
Logger.log (ReponseText);
if (ReponseText.indexOf("error_code") >= 0)
{
var body = Logger.getLog();
MailApp.sendEmail(email_de_retour , " Erreur du script domotique ", " Une erreur [" + PeriphValue + "] "+ body + "URL:"+urlCalled);
}
return(ReponseText.indexOf("error_code") >= 0);
}
}
// Définition Variables
var Maintenant = new Date();
var JourDebut = new Date();
var JourFin = new Date();
var DemainDebut = new Date(new Date().getTime() + 24 * 60 * 60 * 1000); //24 = 24h en plus par rapport à ce jour
var DemainFin = new Date();
var ApresDemainDebut = new Date(new Date().getTime() + 48 * 60 * 60 * 1000); //48 = 48h en plus par rapport à ce jour
var ApresDemainFin = new Date();
var cptRDV=0;
// Definition des dates
JourDebut.setHours(0,0,0,0);
JourFin.setTime( JourDebut.getTime() + ((24 * 3600)-1) * 1000 ); //jour courant
DemainDebut.setHours(0,0,0,0);
DemainFin.setTime( DemainDebut.getTime() + ((24 * 3600)-1) * 1000 ); //1 jour de plus
ApresDemainDebut.setHours(0,0,0,0);
ApresDemainFin.setTime( ApresDemainDebut.getTime() + ((24 * 3600)-1) * 1000); //2 jour de plus
Retour vers Scripts & Périphériques du store
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 52 invité(s)