Agenda

Disponible sur https://secure.eedomus.com

Re: Agenda

Messagepar Chibibou » 04 Déc 2013 08:42

Bonjour,
I'm back :)
J'ai essayé, mais je reçois un mail de notification d'erreur du script. Est ce que je pourrai envoyer une copie du script à une âme charitable?
En gros, voilà ce que j'essaye de faire: je voudrais que la box récupère sur google agenda la journée en cours (travail, maison, vacances). Et après j'ai des règles en fonction du type de journée.
Merci d'avance de votre aide
Chibibou
 
Messages : 13
Inscription : 25 Sep 2013

Re: Agenda

Messagepar Chacks » 04 Déc 2013 20:31

Bonsoir,

Tu peux m'envoyer ton script, je regarderai dès que j'ai un moment.

@+
1 EEDOMUS, modules FIBARO, IPX800 V3, Arduino, sondes T & Rh WS1170
Chacks
 
Messages : 228
Inscription : 06 Mars 2012

Re: Agenda

Messagepar DjMomo » 05 Déc 2013 09:14

Tu peux aussi le mettre ici, entre les balises [code] et en supprimant ton login et mot de passe, pour en faire profiter tout le monde.
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Agenda

Messagepar Chibibou » 05 Déc 2013 11:35

Bonjour,

T'as raison DJ Momo, autant que ça serve à d'autres, voilà donc le code en question. J'ai mis XXX sur l'adresse mail, le login et le mdp. Actuellement avec ce code, je reçois un mail d'erreur.
Le calendrier sous google agenda s'appelle donc Domotique.
Petite question annexe: sous le périphérique "journée en cours" il n'est pas possible d'ajouter un autre type de journée, comment faire (si c'est possible) pour configurer un autre type de journée?

Merci beaucoup de vos retours.

Code : Tout sélectionner
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
  Journée en cours : 36978
  */
 
  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 "travail" :
          Error = Error || AppelAPI("36978","1"); // Journée de travail
          break;
        case "maison" :
          Error = Error || AppelAPI("36978","2"); // Journée à la maison
          break;
        case "vacances" :
          Error = Error || AppelAPI("36978","3"); // Journée de vacances
       
      }
     
      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("XXX@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=XXX&api_secret=XXX");
 
  Reponse = Reponse.getContentText();
 
  Logger.log (Reponse);
 
  return(Reponse.indexOf("error_code") >= 0);

}
Chibibou
 
Messages : 13
Inscription : 25 Sep 2013

Re: Agenda

Messagepar Chacks » 05 Déc 2013 17:38

Bonjour Chibibou,

je viens de tester et le script marche correctement

Pourrais tu essayer de lancer le script manuellement depuis google script et juste après l'exécution, tu vas dans le menu Affichage > Journaux et tu copies ici la réponse car ça permet de voir l'erreur retournée par les serveurs eedomus
1 EEDOMUS, modules FIBARO, IPX800 V3, Arduino, sondes T & Rh WS1170
Chacks
 
Messages : 228
Inscription : 06 Mars 2012

Re: Agenda

Messagepar Chibibou » 05 Déc 2013 18:14

Bonsoir Chaks,

merci d'avoir regardé. Voici le rapport du script.

Code : Tout sélectionner
[13-12-05 18:12:19:285 CET] {
   "success": "0",
   "body":
   {
     "error_code": "23",
     "error_msg": "HTTP protocol not allowed on your account."
   }
   }
Chibibou
 
Messages : 13
Inscription : 25 Sep 2013

Re: Agenda

Messagepar Chacks » 05 Déc 2013 18:33

L'erreur vient du paramétrage de ton compte eedomus suite à la dernière mise à jour.

Sur la page secure.eedomus.com, il faut que tu ailles dans Configuration > Mon Compte > Paramètres
Il faut que tu coches "Autoriser l'API via HTTP"

Il faudrait que je vois si google script accepte l'appel d'URL via HTTPS pour ensuite modifier mon script

Normalement, avec ce paramètre coché, ça devrait fonctionner
1 EEDOMUS, modules FIBARO, IPX800 V3, Arduino, sondes T & Rh WS1170
Chacks
 
Messages : 228
Inscription : 06 Mars 2012

Re: Agenda

Messagepar Chibibou » 05 Déc 2013 18:49

:) :) :)
merci Chacks, ça marche! Merci beaucoup :D

Autrement, sais tu si il est possible d'ajouter un autre type de journée (en plus de journée de travail, journée à la maison, journée de vacances)?
Merci!
Chibibou
 
Messages : 13
Inscription : 25 Sep 2013

Re: Agenda

Messagepar Chacks » 05 Déc 2013 19:14

Non il n'est pas possible de rajouter des valeurs car c'est un état virtuel natif eedomus

Par contre il faut que tu fasses attention car des règles (masquées) mettent à jour cet état virtuel en fonction du calendrier natif eedomus donc il faut peut être que tu les désactive
1 EEDOMUS, modules FIBARO, IPX800 V3, Arduino, sondes T & Rh WS1170
Chacks
 
Messages : 228
Inscription : 06 Mars 2012

Re: Agenda

Messagepar Nico33 » 05 Déc 2013 23:21

Pour être certain de maîtriser ces états et pour en avoir d'autres comme tu sembles le souhaiter, le plus simple est de te créer un état virtuel où tu mets ceux que tu veux. Tu auras l'assurance que rien d'autre ne les modifiera.
Nico33
 
Messages : 1013
Inscription : 14 Juin 2013

Re: Agenda

Messagepar DjMomo » 06 Déc 2013 00:11

Plus précisément une scène si tu ne souhaites pas de notifications.

Une scène peut être vue comme un ensemble de règles basées, à chaque fois et uniquement sur une condition d'état et 0 à X actions.

C'est plus simple à gérer qu'un état virtuel et X règles associées pour gérer tous ses changements d'humeur :mrgreen:
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Précédent

Retour vers Portail web "classique"

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 25 invité(s)