Calendrier Google

Discussion et échanges de scripts pour la box eedomus

Re: Calendrier Google

Messagepar pvet » 27 Avr 2014 07:04

stepga a écrit:Je viens de mettre en place ce script sur ma box mais lorsque je fais le test, il me retourne aucun résultat.


Procédons par ordre :)
Tu as bien suivi le tutorial indiqué ?
Ca marchait correctement avec les scripts hébergés sur le serveur de Cédric ?

Tu peux tester la réponse de Google Agenda en passant directement l'URL de requête dans ton navigateur web, exemple :

Tu copie/colle cette longue URL dans un éditeur de texte parce que ce sera toujours plus pratique que la petite case du navigateur web :

Code : Tout sélectionner
https://www.google.com/calendar/feeds/IDENTIFIANT_DU_GOOGLE_AGENDA/basic?fields=entry(title)&start-min=DATA1&start-max=DATE2&sortorder=ascending&orderby=starttime&max-results=1&start-index=1&q=&singleevents=true&futureevents=false&ctz=Europe/Paris&showdeleted=false");


Ensuite, dans cette URL, tu remplaces IDENTIFIANT_DU_GOOGLE_AGENDA par le long identifiant que tu auras récupéré selon la méthode décrite dans le tutoriel, puis DATE1 par la date de début de ta requête, au format ANNEE-MOIS-JOUR, par exemple 2014-04-27, et DATE2, c'est le lendemain de cette date, dans mon exemple 2014-04-28.
Une fois ton URL construite, tu la copie/colle dans la barre d'adresse de ton navigateur et tu envoie ta requête. Tu devrais obtenir une réponse des serveurs de Google, une réponse XML.
Si tu demandes le code source de la page reçue (fouille dans les menus de ton navigateur pour "Afficher le code source de la page" ou équivalent), tu devrais avoir quelque chose comme :

Code : Tout sélectionner
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'><entry><title type='html'>maison</title></entry></feed>


ou, si tu n'as pas mis d'événement pour le jour demandé :

Code : Tout sélectionner
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'></feed>


Tant que tu n'obtiens pas de réponse de ce style des serveurs de Google, le script ne fonctionnera pas. Si ta réponse est très différente, tu peux éventuellement essayer de me l'envoyer par Message Privé pour y jeter un oeil.
Courage ;)
pvet
 
Messages : 47
Inscription : 26 Oct 2012

Re: Calendrier Google

Messagepar sonico-pico » 27 Avr 2014 14:40

C'est bon le script fonctionne chez moi !
Au passage j'ai résolu mon problème. Il faut faire attention a ne mettre une seule chose en entête des journées, ce qui oblige a créé un agenda spécial pour la eedomus. Moi j'avais un seul agenda et c'est pour ça que j'avais des erreurs.
Un grand merci à Pvet pour l'adaptation de ce script qui me facilite la vie. :D
sonico-pico
 
Messages : 21
Inscription : 10 Mars 2013

Re: Calendrier Google

Messagepar stepga » 28 Avr 2014 10:27

Merci pvet pour tes explications.

Voilà ce que j'ai fait :
J'ai suivi le tuto
Le scipt n'était pas hébergé auparavent.
J'obtiens bien une réponse de Google avec ton URL modifiée avec mon identifiant par contre mon capteur HTTP ne me retourne rien
Voici l'URL dans ma box :
"http://192.168.0.19/script/?exec=gestionAgendaGooglePourEedomus.php&cal=IDENTIFIANT_DU_GOOGLE_AGENDA&decode=0,AUCUNE,1,MARRON,2,BLEUE,3,MARRON-VERTE,4,VEGETAUX,5,ENCOMBRANTS&defaut=0"
stepga
 
Messages : 16
Inscription : 03 Jan 2014

Re: Calendrier Google

Messagepar lecameleon99 » 04 Juin 2014 11:06

Salut pvet,

J'ai testé ton script directement (c'est à dire, je n'ai pas migré depuis quelque chose qui fonctionnais).

J'ai l'impression que la partie "défaut" ne fonctionne pas. Si je n'ai rien dans mon calendrier, j'ai une erreur sur l'EEDOMUS me disant qu'il n'a pas réussi à lire la valeur.

Contrairement a ce que laisse penser le script de Cédric (pas testé), il récupère l'état de la journée, et ce quel que soit son nom. En effet, on vois qu'il affiche le nom du jour férié, alors que j'ai l'impression qu'avec ton script, il faut absolument que le nom corresponde aux états prédéfinis dans la requête, sinon ça marche pas.

C'est que chez moi, ou c'est une limitation de ton script?
lecameleon99
 
Messages : 66
Inscription : 08 Fév 2012

Re: Calendrier Google

Messagepar lecameleon99 » 04 Juin 2014 11:35

Arf,
En testant ce que tu conseilles un peu plus haut, je me rends compte que ce sont mes "rendez-vous" qui gênent.


Je pensais que le script regardais QUE ce que l'on planifiait à la journée, et non les autres petits évènements ponctuels.

Il faut donc UN calendrier dédié à l'EEDOMUS pour gérer nos journées, c'est bien ça?
lecameleon99
 
Messages : 66
Inscription : 08 Fév 2012

Re: Calendrier Google

Messagepar ASECADOMOTIQUE54 » 04 Juin 2014 11:51

oui si tu crée un agenda dédié tu n'aura plus ce problème ;) moi j'e ai un pour les types de journée et un autre pour les phases de journée
ASECADOMOTIQUE54
 
Messages : 639
Inscription : 14 Déc 2013
Localisation : Nancy

Re: Calendrier Google

Messagepar olivvvv » 15 Sep 2014 15:02

Bonjour,

je trouve vos travaux très interressants !
Cela ouvre pas mal de perspectives en effet.

J'ai une idée, mais je ne sais pas si cela peut être réalisable.

la voici :

Nous avons deux calendriers ma femme et moi sur gmail.
Le but serai d'en créer un troisième afin d'y insérer des évènements où l'on serai prévenu par rappel de l'eedomus (via nabaztag par exemple).

Réalisable ?
olivvvv
 
Messages : 134
Inscription : 10 Sep 2014

Re: Calendrier Google

Messagepar ASECADOMOTIQUE54 » 16 Sep 2014 06:56

Si j'ai bien compris tu voudrai faire lire à ton lapin ton calendrier google que tu as en commun avec ta femme.
Ce serai des événements de quelle type par contre? récurent(jour de la semaine/poubelles) ou personnalisable( rdv , sorties)

j'ai une petite idée comme ça et je trouve que l’idée de faire lire un calendrier perso semble très pertinente.

je vais investiguer et je te redis
Dernière édition par ASECADOMOTIQUE54 le 16 Sep 2014 08:21, édité 1 fois.
ASECADOMOTIQUE54
 
Messages : 639
Inscription : 14 Déc 2013
Localisation : Nancy

Re: Calendrier Google

Messagepar olivvvv » 16 Sep 2014 07:12

Super ASECADOMOTIQUE54,

Oui c'est bien cela,
être averti par rappel des évènements insérés dans un calendrier commun.

Ces évènements pourraient être effectivement récurrents ou pas.

Il faudrai pouvoir avoir le choix du rappel (mais la je pense que ce sera compliqué), par exemple :
Pour les poubelles, plutôt être prévenu la veille.
D'autres évènements où le rappel pourrai se faire 1 heure avant ou 2 heures, etc.

On pourrai ensuite avec eedomus être averti avec divers sorties (nabaztag, imperihome..)

Dans tous les cas si tu souhaites in beta testeur, je serai disponible.
olivvvv
 
Messages : 134
Inscription : 10 Sep 2014

Re: Calendrier Google

Messagepar ASECADOMOTIQUE54 » 16 Sep 2014 09:14

bon je viens d'essayer de glisser un
http://api.wizz.cc/?sn=xxxxxxxxxxxxxxxx ... pixel&tts=[LAST_VALUE PERIPH_ID="capteur agenda"]&voice=fr dans les valeurs du lapin sans succés!

en utilisant le script ci dessous
Code : Tout sélectionner
<?php
require_once 'GoogleAgenda.php';
require_once 'GoogleAgendaEvent.php';
require_once 'GoogleAgendaException.php';
 
try {
    $oAgendaConges = new GoogleAgenda("https://www.google.com/calendar/feeds/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/basic");  // Compléter ici par l'url privée de l'agenda Google
   
    $aAujourdhui = $oAgendaConges->getEvents(array(
      'startmin' => date('Y-m-d'),
        'startmax' => date('Y-m-d',strtotime("+24 hours")),
        'sortorder' => 'ascending',
        'orderby' => 'starttime',
        'maxresults' => '1',
        'startindex' => '1',
        'search' => '',
        'singleevents' => 'true',
        'futureevents' => 'false',
        'timezone' => 'Europe/Paris',
        'showdeleted' => 'false'
    ));
   $aDemain = $oAgendaConges->getEvents(array(
      'startmin' => date('Y-m-d',strtotime("+24 hours")),
      'startmax' => date('Y-m-d',strtotime("+48 hours")),
      'sortorder' => 'ascending',
      'orderby' => 'starttime',
      'maxresults' => '1',
      'startindex' => '1',
      'search' => '',
      'singleevents' => 'true',
      'futureevents' => 'false',
      'timezone' => 'Europe/Paris',
      'showdeleted' => 'false'
    ));
   
   echo '<?xml version="1.0" encoding="utf8" ?>';
   echo '<ordures>';
 
   if ($aAujourdhui) {
      foreach ($aAujourdhui as $oAujourdhui) {
         echo '<aujourdhui>' . $oAujourdhui->getTitle() . '</aujourdhui>';
      }
   } else {
      echo '<aujourdhui>rien</aujourdhui>';
   }

   if ($aDemain) {
      foreach ($aDemain as $oDemain) {
         echo '<demain>' . $oDemain->getTitle() . '</demain>';
      }
   } else {
      echo '<demain>rien</demain>';
   }

   echo '</ordures>';
   
}

catch (GoogleAgendaException $e) {
    echo $e->getMessage();
}

mon capteur texte me remonte bien la valeurs de mon texte
mais sa coince au niveau du lapin...
le lapin me dit "pa"
quelq'un à une idée?
ASECADOMOTIQUE54
 
Messages : 639
Inscription : 14 Déc 2013
Localisation : Nancy

Re: Calendrier Google

Messagepar olivvvv » 16 Sep 2014 12:05

De mon côté je suis obligé de mettre des %20 en guise d'espace entre les mots afin que la phrase ne soit pas coupée.
Peut être ca.
olivvvv
 
Messages : 134
Inscription : 10 Sep 2014

Re: Calendrier Google

Messagepar ninjuki » 30 Nov 2014 14:52

La version /full ne fonctionne plus depuis la nouvelle api v3 de google.

pour utiliser la version basic il faut préciser false sur le deuxième paramètre:

new GoogleAgenda("https://www.google.com/calendar/.../basic", false);

l'appel fonctionne de nouveau par contre la version basic permet uniquement de récupéré le titre de l’événement du coup on ne peux plus tester sur les dates de l'évenement.

Pour faire des tests sur l'heure , j'ai modifier l'appel pour requêter directement les event avec l'heure.
'startmin' => gmdate("Y-m-d\TH:i:s\Z", time()),
'startmax' => gmdate("Y-m-d\TH:i:s\Z", time() + (1 * 60 * 60) + 60), //Ajout de 1h + 1 minute

Après je récupère le premier résultat (température actuelle) et le dernier (pour la température de la prochaine heure)
ninjuki
 
Messages : 24
Inscription : 14 Mai 2012

Re: Calendrier Google

Messagepar frenchdm » 13 Jan 2015 22:36

pvet a écrit:Pour ceux qui utilise Google Agenda et les scripts hébergés par Cédric avec le tutorial décrit à cet endroit :

http://maison-et-domotique.com/books/script-calendrier-google-et-box-domotique/

(ou pour ceux qui héberge leurs scripts sur leur serveur, comme le décrit Aurel sur Domolog)

J'ai adapté les scripts fournis pour n'en faire qu'un, afin d'héberger cette fonctionnalité directement sur nos Eedomus ;)

En suivant les instructions d'installation d'un script sur l'Eedomus (http://doc.eedomus.com/view/Scripts), il suffit de placer le script suivant (après l'avoir dézippé) sur votre box :

https://dl.dropboxusercontent.com/u/52161840/gestionAgendaGooglePourEedomus.php.zip

Puis dans vos 2 HTTP-Capteurs existant (Etat Aujourd'hui & Etat Demain), remplacez la partie de l'URL

http://www.maison-et-domotique.com/scripts/agenda.php?cal=XXX&decode=...

par

http://IP_DE_VOTRE_BOX/script/?exec=gestionAgendaGooglePourEedomus.php&cal=XXX&decode=...

(soyez attentif au "?" et "&"... le nom du script est passé en paramètre, et non pas comme faisant parti de l'URL...)

Pour reprendre l'exemple cité dans le tutorial :

Code : Tout sélectionner
http://www.maison-et-domotique.com/scripts/agenda.php?cal=qsnmyou79cndaoeh783663ing%40group.calendar.google.com/private-1ac30ee2598467tfb4807d7096dc6&decode=0,travail,1,maison,3,conges&defaut=0


devient pour une box ayant par exemple l'ip 192.168.0.10 :

Code : Tout sélectionner
http://192.168.0.10/script/?exec=gestionAgendaGooglePourEedomus.php&cal=qsnmyou79cndaoeh783663ing%40group.calendar.google.com/private-1ac30ee2598467tfb4807d7096dc6&decode=0,travail,1,maison,3,conges&defaut=0


J'espère avoir été clair ;)

Pour ceux qui n'utilise pas ce mode de fonctionnement de l'Eedomus et de Google Agenda mais qui sont tentés, il suffit de suivre à la lettre le tutorial indiqué en début de mon message, puis d'adapter l'URL comme indiqué précédemment, tout fonctionne à l'identique.

Et encore merci à Cédric d'avoir hébergé jusqu'à présent ces scripts et d'avoir accepté jusqu'ici nos multiples requêtes vers son serveur :)


Le lien pour télécharger le script est HS. Quelqu'un pourrait me le mettre à disposition, j'ai restauré ma box suite à problème et le script est parti avec ... :roll:
Grand merci !
frenchdm
 
Messages : 233
Inscription : 20 Jan 2014

Re: Calendrier Google

Messagepar aurel » 14 Jan 2015 14:53

j'ai posté sur domo-blog le script que j'avais modifié pour fonctionner avec la nouvelle api google si vous voulez ;)
Rendons plus simple notre quotidien avec domo-blog.fr
aurel
 
Messages : 815
Inscription : 07 Août 2012
Localisation : 77

Re: Calendrier Google

Messagepar frenchdm » 14 Jan 2015 16:13

Merci Aurel ;)
frenchdm
 
Messages : 233
Inscription : 20 Jan 2014

Re: Calendrier Google

Messagepar treker » 25 Fév 2015 21:49

Hello,

je demarre depuis 1 mois avec mon Eedomus et j'aimerais heberger le script de PVET directement sur ma Eedomus et non sur un serveur WEB. Du coup la methode d'Aurel ne va pas m'aller..
PVET peut il nous remettre son script a dispo quelque part car en effet le dl est mort. :(

Merci merci :)

PS: en attendant j'ai mis en place le systeme d'Aurel mais meme si je recupere la valeur sortir poubelles jaunes et bien apres je ne vois pas comment faire la notification car si je fais une programation et bien si je veux mettre aujourd'hui est egal a.. ben j'ai rien dans valeur..

mon objectif est d'envoyer un sms a la famille via une macro en utilisant SMS Gateway. pour ca je me suis crée un actionneur qui comporte toute les macro necessaires.

mais la je suis bloqué sur le critere VALEUR pour finaliser.

J'ai raté quelque chose? je suis fatigué? bref...suis perdu la, heeeelp ! :)

PS2: pfff le mec fatigué.. si je cree paas la meme valeur que dans mon agenda ca risque pas de marcher !! :-)
Voila ca marche et je recois bien mon texto :)
Bon ben pour l'instant un grand merci a AUREL pour son script qui est deja adopté. :-)
treker
 
Messages : 69
Inscription : 19 Nov 2014

Re: Calendrier Google

Messagepar pvet » 26 Fév 2015 06:16

Coucou,
je ne fais que passer en coup de vent, je ne me suis pas penché sur ton problème, mais je te laisse le script dont le lien ne marche plus directement dans ce message puisqu'il n'est pas si important.
Chez moi, il fonctionne toujours parfaitement, je n'ai pas lu les adaptations apportées par certains puisque chez moi, il me correspond tout à fait ;)
En espérant que ça te dépanne.

Code : Tout sélectionner
<?

// Script pour fonctionner avec le tutorial : http://maison-et-domotique.com/books/script-calendrier-google-et-box-domotique/
// Adaptation par 'pvet' sur le forum Eedomus http://forum.eedomus.com/

// Fonction 'array_search' non accessible depuis le SDK Eedomus, une fonction identique est creee.
function sdk_array_search($needle, $haystack){
  foreach ($haystack as $key => $value) {
    if ($value == $needle) {
      return $key;
    }
  }
  return false;
}

// Parametres obligatoires a passer par l'URL
// voir Tutorial : http://maison-et-domotique.com/books/script-calendrier-google-et-box-domotique/
$url_cal = getArg('cal');   // id_calendrier, exemple : cal=XXX
$decode = getArg('decode'); // tableau des correspondances, exemple : decode=0,maison,1,bureau,2,campagne,3,ailleurs
$defaut = getArg('defaut'); // valeur par defaut quand un evenement n'existe pas pour une journee, exemple : default=0

// On remplit le tableau qui permet le decodage
$items = explode(",", $decode);
for($n = 0, $m = count($items); $n < $m; $n=$n+2){
  $tableau_decode[$items[$n]] = $items[$n+1];
}

// On calcule les dates
$aujourdhui = date('Y-m-d');
$demain = date('Y-m-d',strtotime("+24 hours"));
$demainmax = date('Y-m-d',strtotime("+48 hours"));

// On appelle le XML de Google Calendar pour l'evenement d'aujourd'hui.
$statusAujourdhui = httpQuery("https://www.google.com/calendar/feeds/".$url_cal."/basic?fields=entry(title)&start-min=".$aujourdhui."&start-max=".$demain."&sortorder=ascending&orderby=starttime&max-results=1&start-index=1&q=&singleevents=true&futureevents=false&ctz=Europe/Paris&showdeleted=false");

// On verifie qu'il y a bien un evenement pour aujourd'hui (sinon on indiquera la valeur par defaut passee en parametre)
$nbEntryAujourdhui = xpath($statusAujourdhui, "count(//*[local-name() = 'entry'])");

echo '<?xml version="1.0" encoding="utf8" ?>';
echo '<calendrier>';

if ($nbEntryAujourdhui > 0) {
  // Il y a bien un evenement, on recupere son titre, puis on cherche sa correspondance dans notre tableau
  $titleAujourdhui = xpath($statusAujourdhui, '//*[local-name() = \'title\']');
  echo '<aujourdhui>'.sdk_array_search($titleAujourdhui,$tableau_decode).'</aujourdhui>';
} else {
  echo '<aujourdhui>' . $defaut . '</aujourdhui>';
}

// On appelle le XML de Google Calendar pour l'evenement de demain.
$statusDemain = httpQuery("https://www.google.com/calendar/feeds/".$url_cal."/basic?fields=entry(title)&start-min=".$demain."&start-max=".$demainmax."&sortorder=ascending&orderby=starttime&max-results=1&start-index=1&q=&singleevents=true&futureevents=false&ctz=Europe/Paris&showdeleted=false");

// On verifie qu'il y a bien un evenement pour demain (sinon on indiquera la valeur par defaut passee en parametre)
$nbEntryDemain = xpath($statusDemain, "count(//*[local-name() = 'entry'])");

if ($nbEntryDemain > 0) {
  // Il y a bien un evenement, on recupere son titre, puis on cherche sa correspondance dans notre tableau
  $titleDemain = xpath($statusDemain, "//*[local-name() = 'title']");
  echo '<demain>'.sdk_array_search($titleDemain,$tableau_decode).'</demain>';
} else {
  echo '<demain>' . $defaut . '</demain>';
}

echo '</calendrier>';

?>
pvet
 
Messages : 47
Inscription : 26 Oct 2012

Re: Calendrier Google

Messagepar treker » 06 Mars 2015 22:03

Merci beaucoup. On va tester ca. J'ai deja celui d'Aurel qui fonctionne a merveille aussi.

J 'ai monté un script aussi pour me faire des plages horaires de declenchemetn de scenario avec un actionneur "virtuel" Heure. Ca marche au poil.

merci encore pur le partage.
Treker
treker
 
Messages : 69
Inscription : 19 Nov 2014

Re: Calendrier Google

Messagepar Pat11 » 15 Août 2015 15:33

Bonjour
j ai installé le script sur mon serveur tout fonctionne mais quand j ai aucune activité le jour même il m affiche celle du lendemain au lieu d'afficher "rien".
si quelqu'un peut m'aider merci
Pat11
 
Messages : 71
Inscription : 23 Sep 2012

Re: Calendrier Google

Messagepar pvet » 02 Oct 2015 06:20

Et m...

Un truc qui marchait tranquille... Et Google va l'arrêter :-(

Reçu ce jour :

Du fait de leur faible utilisation et dans un souci de simplification de nos services, les flux XML ne seront plus disponibles dans Google Agenda à compter du 18 novembre 2015. Le présent message vous est envoyé, car un lien vers un ou plusieurs agendas utilisant les flux XML est accessible en consultation ou en partage au sein de votre domaine.

Nous vous prions de nous excuser des désagréments occasionnés. Les agendas Google restent néanmoins consultables dans d'autres applications par le biais de trois méthodes :

- Accès aux agendas au moyen d'autres applications telles que Microsoft Outlook ou Calendrier Apple à l'aide d'iCal

Intégration HTML des agendas dans votre site Web ou votre blog

Si vous êtes un développeur, utilisation de l'API Google Calendar pour afficher, créer ou modifier des événements d'agenda

Enfin, vous pouvez continuer d'afficher et de gérer les agendas à l'aide de l'application Google Agenda pour Android, pour iPhone® ou via l'application du Web.

Cordialement,
L'équipe Google Agenda


Nous sommes bien peu de chose.

Bon ben va falloir trouver une alternative... l'agenda Eedomus ? J'aimais bien gérer depuis une appli externe qui ne me servait pas qu'à ça (sinon j'oublie de mettre à jour)
pvet
 
Messages : 47
Inscription : 26 Oct 2012

PrécédentSuivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

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