L'eedomus est la première box que j'ai vu ayant prévu la gestion d'un calendrier pour les jours de vacances, la définition des périodes de la journée, etc…
Une fonction vraiment très pratique ! Toutefois, elle peut s'avérer encore un peu limitée ou contraignante pour des personnes ayant des emplois du temps très variables, ce qui nécessite de modifier la configuration de l'agenda sur la box.
C'est par exemple mon cas: travaillant en informatique, il peut arriver de travailler la nuit, ou le week end, si une maintenance serveur est nécessaire. Selon mes contraintes, il m'arrive également d'aller travailler en train (le plus courant) ou en voiture (si mes horaires le demandent): là mon heure de lever ne sera pas du tout la même.
De ce fait, il peut m'être nécessaire de modifier l'agenda de la box 2 ou 3 fois par semaine. Après avoir gouté à l'agenda Google synchronisé avec la Vera, très pratique à l'utilisation, j'ai cherché un moyen de reproduire cela avec l'eedomus. C'est aujourd'hui possible en utilisant le capteur HTTP récemment ajouté à l'eedomus.
I. Pré requis
A l'image de ce que je vous ai présenté il y a quelques jours pour la station météo, il va être nécessaire d'utiliser un script PHP stocké sur un serveur FTP (votre Nas, un serveur extérieur, etc…). C'est contraignant, mais l'API Google étant un peu complexe à exploiter, c'est pour le moment la seule solution que j'ai trouvé.
Il vous faudra donc:
- une box eedomus, bien sûr
- un serveur web (Nas, serveur extérieur, ou même un ordinateur chez vous)
- ces scripts permettant d'utiliser l'API de Google Agenda
- et bien sûr un calendrier Google Agenda.
Si vous n'avez pas d'agenda Google, vous pouvez en créer un gratuitement ici.
Pour ma part, j'ai un calendrier Google réservé à mes congés. Les congés sont indiqués dans l'entête de la journée (un congé marqué de telle heure à telle heure ne fonctionnera pas):
PS: pour éviter l'apparition de caractères bizarres sur l'eedomus, évitez les caractères spéciaux dans les libellés des évènements. Par exemple ici “Congé Payé” est écrit “Conge Paye” sans les accents.
II. Installation des scripts
L'installation des scripts est très simple: il suffit de vous connecter à votre serveur FTP, puis de les déposer dans le répertoire de votre choix:
Ces trois fichiers sont à copier tels quels, aucune modification n'est nécessaire.
Pour le dernier fichier, agenda.php, il faudra renseigner l'adresse privée de votre calendrier.
Pour cela, rendez vous dans les paramètres de votre calendrier Google. Tout en bas, vous trouverez une icône XML, dans la partie adresse URL privée:
Faites un clic droit sur cette icône, et récupérez l'adresse. Cette adresse est l'adresse de votre calendrier, mais codée de façon à ce qu'elle ne soit pas publique, de ce genre:
http://www.google.com/calendar/feeds/qsnmyourtcndaoeh6mt3663ing%40group.calendar.google.com/private-1ac30ee2598467tfb4807d7096dc6/basic
Copiez cette adresse dans le fichier agenda.php:
C'est la seule chose à modifier. Une fois renseigné, il n'y a plus qu'à le mettre sur le serveur FTP avec les autres fichiers:
Pour vérifier que tout fonctionne bien, il suffit de taper l'adresse web de ce fichier dans votre navigateur web, par exemple http://www.monserveurweb.com/agenda/agenda.php
On doit obtenir quelque chose de ce genre:
[xml]
<!–?<span class=”hiddenSpellError” pre=””–>xml version=”1.0″ encoding=”utf8″ ?>
<conges>
<aujourdhui>Conge Paye</aujourdhui>
<demain>Fete de la Victoire</demain>
</conges>
[/xml]
On a donc ici un fichier xml parfaitement exploitable par l'eedomus.
Pour mes besoins, j'ai décidé d'y faire figurer l'état du jour, mais également l'état du lendemain.
III. Configuration sur la box eedomus
Nous n'avons plus qu'à créer nos deux capteurs HTTP pour l'état du jour et l'état du lendemain:
L'état du jour sera configuré de cette façon:
Ainsi, toutes les 60min, l'eedomus interrogera le calendrier Google pour connaitre l'état de la journée en cours et celui du lendemain (la fréquence peut être ajustée selon vos besoins):
S'il n'y a rien de prévu dans le calendrier, l'eedomus remontera “RAS”. On peut tout à fait personnaliser les valeurs pour obtenir quelque chose de plus sympa, dans le paramétrage du capteur HTTP:
Ces états sont bien entendu utilisables dans les scénarios:
Ainsi, il est tout à fait possible de se passer de l'agenda de l'eedomus et d'utiliser son propre agenda Google, ce qui évite de devoir en gérer plusieurs.
De plus, l'état du lendemain me permet de faire d'autres actions que je ne pouvais pas effectuer avec l'agenda de l'eedomus: par exemple quand le lendemain est une journée travaillée, je coupe les alertes vocales de mon système multiroom plus tôt histoire de ne pas être dérangé quand on est couchés. Le volet de ma porte fenêtre se ferme également plus tard si le lendemain est une journée à la maison.
A l'utilisation c'est vraiment très pratique, puisque j'utilise tous les jours mon calendrier Google: cela me permet de gérer mon emploi du temps, de le synchroniser sur mon iPhone, de le partager avec ma femme, etc… L'utilité de l'agenda Google n'est plus à démontrer. Aujourd'hui, sans rien faire de plus, ce calendrier est également consulté par ma box eedomus, qui gère alors la maison en conséquence.
Enfin, ce procédé peut être utilisé pour diverses choses. J'ai par exemple configuré un autre calendrier pour le ramassage des poubelles, car avec les jours fériés et le ramassage des déchets recyclables tous les 15 jours, je suis toujours en train de me demander quelle poubelle sortir quel jour :p
Je peux ainsi recevoir une notification push la veille au soir, ou même une notification via mon Karotz.
On peut imaginer faire un calendrier pour les anniversaires, un pour gérer le chauffage, etc…
Bonjour, je voulais vous signaler que le script hébergé sur maison et domotique ne fonctionne plus depuis quelques jours. Je suis obliger de mettre le chauffage avec le smartphone tous les matins. La galère quand on est habitué à notre petit confort. lol.
Si quelqu’un a une solution ?
Bonjour Cédric,
Depuis quelques jours le script ne fonctionne plus.
En regardant rapidement j’ai l’impression que ça vient du “/full” qui poserait problème.
As-tu rencontré ce souci ?
Merci
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.
J’ai modifier l’appel pour requêter directement les event avec l’heure.
‘startmin’ => gmdate(“Y-m-dTH:i:sZ”, time()),
‘startmax’ => gmdate(“Y-m-dTH:i:sZ”, 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)
Merci pour ta réponse, j’ai pu résoudre le problème grâce à tes indications.
Salut a tous
Y-a t’il moyen d’avoir un script qui pourrais s’intégrer a la Box maintenant que la Box nous en donne l’occasion ?
je suis intéressé pour récupéré les agenda de la famille en direct sur la box
merci
Bonjour,
Google vient de supprimer les xml des agendas.
Une solution existe-t-elle ? Avec le lien HTML peut-être ?
Merci