Agenda Google et Domoticz Version 2- Partie 1

chatscalendrier

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 »

Domoticz ID

Domoticz idx

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 googlecal0

il faut autoriser l’accès

googlecal1

 

puis copier/coller le code d’autorisation dans notre terminalgooglecal2dans le terminal  googlecal3

On a un message de succès.

Pour vérifier on peut alors utiliser gcalcli list pour avoir la liste des calendriers.

Exemple : gcalcli listgooglecal4

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.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in domoticz.

4 Comments

  1. 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.« 

  2. 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 :

     

    gcalcli agenda --noauth_local_webserver
    

    par

    sudo gcalcli agenda --noauth_local_webserver
  3. 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:

     

    gcalcli agenda --noauth_local_webserver
    

    par

    sudo gcalcli agenda --noauth_local_webserver
    
  4. 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,

    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'))

Comments are closed.