En ce début d’année ou nous sommes submergés de calendriers de pompiers, de chats et de chevaux, revenons sur la gestion des calendriers google.
Un article précédent publié le 12/11, décrivant la connexion à un agenda google est devenu obsolète le 17/11, suite à l’abandon par Google de son API V1 et le remplacement par l’API V3.
Ce qui m’a permis d’avoir le titre de l’article le plus rapidement obsolète du web (5 jours) 😆
Ayant mis à profit les congés de Noël pour examiner l’API V3 et me perfectionner en python, je vous propose ici une refonte complète de l’article initial, de nouveaux programmes en python pour gérer le lien google Agenda-Domoticz.
Cet article sera découpé en deux parties, l’installation des outils puis dans un second temps la mise en place des programmes python.
Les utilisateurs de Synology liront avec intérêt ce message du forum https://easydomoticz.com/forum/viewtopic.php?f=13&t=1872
I – Objectif
L’idée est de pouvoir activer les interrupteurs de notre Domoticz via un agenda google dans lequel nous indiquerons les équipements à activer/arrêter.
Pratique pour simuler une présence durant les congés, déclencher l’ouverture du portail … entre deux dates ou entre 2 heures.
Petites remarques
Reprise intégrale des remarques du blog anglophone, je fais miennes ces petites lignes d’introduction de l’auteur originel …
- AUCUNE vérification n’est faite sur vos entrées dans le calendrier. Vos erreurs pourront avoir des répercussions inattendues.Soyez attentifs à vos saisies.
- Ne l’utilisez pas pour des applications critiques telles que chauffage ou déclenchement de machines si il n’y a personne pour en constater les impacts.
- Si vous ne gardez pas le calendrier privé, n’importe qui pourra contrôler votre Domoticz , est ce bien ce que vous désirez ?
- Ce programme fonctionne pour mon usage et fait ce dont j’ai besoin, pas plus.
Comment çà marche ?
Deux façon de donner des ordres via le calendrier sont actuellement acceptées :
- Une simple commande faisant appel à un seul IDX Domoticz et l’état souhaité (On/Off) Ex: 14=On
- Une commande multiple pilotant plusieurs IDX Domoticz, Exemple : 14;17;18=On
Rappel : les IDX sont indiqués dans « Configuration », « Périphériques »
Nous aurons besoin d’un agenda google spécifique à notre pilotage de la domotique.
II – Créons un calendrier spécial Domoticz
Connectez vous à votre compte google, puis allez à Google Agenda et créez un nouvel agenda à partir de votre agenda principal.
Ici il sera nommé, avec un sens de l’a propos hors du commun, Domoticz. Mais vous pouvez utiliser n’importe quel nom.
Gardez cet agenda privé, sinon n’importe qui y accédera
III – Installation des outils
Nous avons besoin des outils python et google.
En ligne de commande :
sudo apt-get install python-gflags python-dateutil python-httplib2
sudo apt-get install python-pip
sudo pip install google-api-python-client==1.4.2
sudo pip install oauth2client==1.4.12
sudo pip install --upgrade google-api-python-client sudo git clone https://github.com/insanum/gcalcli.git cd gcalcli sudo python setup.py install
Un lecteur (HeartBlood) indique qu’il faut à la place des instructions ci-dessus, utiliser :
sudo apt-get install python-httplib2 python-google-apputils python-googleapi git clone https://github.com/insanum/gcalcli cd gcalcli sudo python setup.py install
Merci à Pyrrhus du forum pour l’utilisation des dernières bibliothèques oauth et à Heartblood pour ces modifs concernantles librairies python.
A chaque ligne vérifiez qu’il n’y a pas d’erreur d’installation
puis un
sudo
gcalcli agenda --noauth_local_webserver
nous affiche une url à rallonge, que l’on copie/colle dans un navigateur
il faut autoriser l’accès
puis copier/coller le code d’autorisation dans notre terminaldans le terminal
On a un message de succès.
Pour vérifier on peut alors utiliser gcalcli list pour avoir la liste des calendriers.
Super, ça marche!!
Arrêtons nous sur cette victoire en attendant la seconde partie consacrée au lien Domoticz->agenda via un script python. Mais avant de cliquer lisez ce qui suit. ➡
Toutefois depuis la rédaction initiale de cet article de nombreuses améliorations ont été apportées pour la gestion de l’agenda google via un script Lua plutôt que python, je ne peux que vous renvoyer à ce post du forum https://easydomoticz.com/forum/viewtopic.php?f=10&t=1195&p=10344#p10343 afin de vous faciliter la vie.
Bonjour,
Pour les personnes ayant téléchargées la version SD de Domoticz 4834 (et supérieur ?) pour qui l’installation ne fonctionne plus, faîtes ceci :
Suivez le tuto jusqu’au III Installation des outils, et procédez à une installation comme suit :
sudo apt-get install python-httplib2 python-google-apputils python-googleapi
git clone https://github.com/insanum/gcalcli
cd gcalcli
sudo python setup.py install
Puis reprenez le tutoriel à partir : « Merci à Pyrrhus du forum pour l’utilisation des dernières bibliothèques oauth.«
Merci pour la modification!
Petit rajout, sur la partie 2, des personnes ont des problèmes d’authentification parce que l’utilisateur dans le crontab est sudo. Et là l’authentification se fait avec l’utilisateur pi! Pour éviter le bug, je propose :
par
Merci pour la modification!
Petit rajout, sur la partie 2, des personnes ont des problèmes d’authentification sur la partie 2 du tuto parce que l’utilisateur dans le crontab est sudo. Et là l’authentification se fait avec l’utilisateur pi! Pour éviter le bug, je propose de remplacer:
par
Bonjour
j’ai suivi les etapes precedentes mais j’ai ce message d’erreur
est ce que vous avez une idee comment corriger. merci
gcalcli agenda –noauth_local_webserver
Traceback (most recent call last):
File « /usr/local/bin/gcalcli », line 4, in
import pkg_resources
File « /usr/lib/python2.7/dist-packages/pkg_resources.py », line 2711, in
parse_requirements(__requires__), Environment()
File « /usr/lib/python2.7/dist-packages/pkg_resources.py », line 588, in resolve
raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (oauth2client 1.4.12 (/usr/local/lib/python2.7/dist-packages), Requirement.parse(‘oauth2client>=1.5.0,<5.0.0dev'))