Categories

NEW La gestion des ordures La gestion des ordures et du tri avec la domotique V2

Depuis maintenant deux ans, nous pouvions avoir les notifications dans notre box préférée grâce à Aurélien et son article La gestion des ordure avec la domotique

gcal_eedomus

Suite à une évolution de l’API Google, nous avons tous reçu un mail début octobre de la part de google nous annonçant la fin des flux XML sur les google calendar.
google api

De ce fait le service s’arrête le 18 novembre 2015. A cette date, il ne sera plus possible de récupérer les informations des calendriers Google via un flux XML.

 

Mais alors comment continuer à lire les calendriers google depuis l’eedomus?

Voici une méthode qui remplace l’ancienne façon de récupérer les informations de nos différents calendriers Google. Elle n’est pas nouvelle puisque je me suis inspiré pour cela du tuto de Pierre sur le blog maison et domotique Je l’ai simplement un peu adapté.

Pour cela nous allons donc utiliser un script Google, rien de bien sorcier vous allez voir, il faut simplement bien suivre le tuto à la lettre et tout se passera bien !

Pré requis :

  • Avoir un compte Google.
  • Avoir une box Eedomus.

Voici mes deux Agendas : « Déchetterie » et « Sortir_Poubelle »

Calendrier

Pour créer un calendrier, vous pouvez suivre l’article d’Aurel ici, rien ne change, simplement à l’étape 2 revenez sur ce tuto pour continuer.

Mise en place Coté eedomus

1 Création des Etats dans l’EEDOMUS

Créer 4 états. Il faut en fait comme avant un état aujourd’hui ainsi qu’un état demain par calendrier. Ici 4 puisque je gère à la fois le calendrier sortir les poubelles et le calendrier de la déchetterie soit 2 x 2 calendrier.

Le principe est le même qu’avec l’ancienne technique, simplement, nous n’utilisons plus des capteur HTTP mais des Etats

Etat_eedomus

4etats

4etat2    4etat3

2  Récupérer les  4 codes API (1 code API par état)

api

 

Mise en place du script sur Google

1  Se connecter à son compte Google Drive https://drive.google.com/

2  Créer un script

Clique droit -> Nouveau Fichier -> Google Apps Script

google calendrier

4  Nommer le script, moi je l’ai nommé Calendrier_eedomus

google_calend

4  Copier/Coller le code suivant dans le script créé précédemment.
 

Les valeurs à changer sont

1 Le nom des calendriers (ici ils s’appellent « NOM_CALENDRIER1 »  et « NOM_CALENDRIER2 » ) en ligne 23 et 24

2 Le numéro de périphériques:

AAAAA  =Numéro du périphérique Aujourd’hui  pour le calendrier 1 en ligne 23

BBBBB = Numéro du périphérique Demain  pour le calendrier 1 en ligne 23

CCCCC  =Numéro du périphérique Aujourd’hui  pour le calendrier 2 en ligne 24

DDDD = Numéro du périphérique Demain  pour le calendrier 2 en ligne 24

 

3 Modifier’adresse mail « MON_MAIL@gmail.com » à avertir en cas de problème  en ligne 97

4 Remplacer les XXX et YYYY correspondants aux API user et Secret à la ligne 88

 

L’exécution du script

1  Une fois le script copié et adapté, cliquez sur l’icône  « Exécuter » .

2  Une fenêtre d’avertissement s’ouvre pour demander l’autorisation pour que ce script ait accès aux différents services Google.

Cliquez sur Autoriser.

autorisation autorisation2

3  Maintenant que le script est créé, il faut l’automatiser pour qu’il s’exécute selon la période désirée.

Dans l’éditeur de Scripts de Google Drive, cliquez sur la petite icône en forme de montre :  » Déclencheurs du script actuel…  »

autorisation3

4  Cliquez sur le lien  » Aucun déclencheur configuré. Cliquez ici pour en ajouter un.  « 

declencheur

Comme vous avez pu le remarquer dans le script, nous allons chercher l’ensemble des événements sur la journée d’aujourd’hui et le lendemain.

5  Il nous suffit donc de planifier son exécution une fois par jour. (Entre 1h et 2 heures par exemple)

exec

6  Demandez à exécuter la fonction  » Calendrier  » en  » Fonction du temps  » en choisissant le  » compteur de jour  » positionné à la valeur  » Entre 1 h et 2h  » par exemple.

7  Appuyez sur le bouton  « Enregistrer »

Le script va scruter vos agendas une fois par jour et mettre à jour les différents Etats.

A savoir

Dans cet exemple, on récupère les valeurs de deux calendriers. Vous pouvez bien sûr en utiliser autant que vous voulez.

Il suffit d’ajouter une ligne comme ci-dessous et la customiser comme nous avons fait plus haut

 

Conclusion

Malgré l’arrêt du service XML par google pour ses calendrier, cette méthode permet de continuer a utiliser les calendrier google pour alimenter les scénarios de l’eedomus. C’est d’ailleurs un script qui est mis en oeuvre sur la box eedomus ici, mais il peut tout à fait être adapté sur une autre box.

poubelle eedomus new

  • titi007

    merci, je vais tester ça ce week end. j’ai déjà interfacé l’eedomus avec les script google pour avoir l’état de mon alarme. assez puissant ces scripts

    • De rien, bonne config !

  • Romain Rousseau

    on place ou dans le script « Adresse URL privée  » que l on trouve dans l étape 3 ??

    • Salut, c’est une erreur dans la rédaction du tuto, si ton calendrier existe déjà, il faut simplement passer à la mise en place coté eedomus.

      • Romain Rousseau

        et « NOM_CALENDRIER1 » correspond au nom du calendrier google utilisé?

        car après j ai le code erreur TypeError: Impossible d’appeler la méthode « getEvents » de undefined. (ligne 39, fichier «  »

      • oui, il faut remplacer NOM_CALENDRIER1 par le nom de ton calendrier Attention a bien respecter la casse ! Bonne config 😉

      • Romain Rousseau

        Merci j’avance petit à petit, les codes et moi ça fait 2

      • jf morette

        j’ai aussi cette erreur quand j’exécute le script mais ça fonctionne, j’ai maintenant  » RAS » sur mes capteurs 😉
        n’y a t il pas un espace de trop ligne 23 avant les  » de AAAAAAA ?
        En tout cas, merci une fois de plus pour ce tuto et la réactivité

      • ah oui, bien vu, en effet! je suis pas sur que l’espace change beaucoup mais test et redis nous, je corrige le code dans l’article en attendant !

      • Romain Rousseau

        j ai ça comme erreur

        Une erreur s’est produite lors à la réalisation de l’événement [weekend] Fri Nov 13 10:17:27 CET 2015 INFO: {
        « success »: « 0 »,
        « body »:
        {
        « error_code »: « 1 »,
        « error_msg »: « Authentification error. »
        }
        }
        Fri Nov 13 10:17:28 CET 2015 INFO: {
        « success »: « 0 »,
        « body »:
        {
        « error_code »: « 1 »,
        « error_msg »: « Authentification error. »
        }
        }

      • hum, comme ca je dirais regarde du coté de tes codes API

      • Romain Rousseau

        Non mes api sont bon j ai vérifié et plus je me connecte sur l eedomus avec

      • Eedomusbox

        Ton API user et Secret à la ligne 88 sont surement erronés.

  • bon je sais quoi faire ce weekend

    merci pour ton script

  • Julien

    Je m’excuse d’avance pour ma question… :/

    Je cherche à comprendre l’interet d’une telle solution à base de script google pour la gestion des ordures ?
    Quel est le point bloquant, empêchant de gérer cela directement depuis la box ?
    Je ne souhaite pas troller.. juste comprendre, merci 🙂

    • Salut, il n’y a pas de question bête !

      l’intérêt est de pouvoir faire intervenir les éventements de ton calendrier perso dans tes scénarios. Il est vrai qu’il est aussi possible de gérer cela depuis la box mais le calendrier eedomus. A l’époque le calendrier eedomus n’existait pas, nous avions donc géré cela depuis google cal. Certains ne veulent pas refaire leur config d’autres comme moi, préfère passer par les google cal plutôt que le calendrier interne à la box. Question de gout. Cela dit, le calendrier google est tout de même bien plus simple à administrer. cela peut être fait depuis un mobile ou une tablette sans passer par l’eedomus, il est aussi possible de créer autant de calendrier que d’utilisation (perso, pro, poubelles, déchetterie, école…).

      Voici en gros l’intérêt d’une telle solution.

      • Julien

        OK, merci pour la réponse !
        Je ne voulais surtout pas que mon message soit interprété comme du troll 😉

        pour l’instant, je me contente du calendrier eedomus, mais effectivement, j’aurais p-e envie de tester google cal un de ces jours 😉

      • Pas de soucis, c’est pas le genre de la maison !

  • Tony Content

    J’ai :
    {
    « success »: « 0 »,
    « body »:
    {
    « error_code »: « 23 »,
    « error_msg »: « HTTP protocol not allowed on your
    account. »
    }

    une petite idée ?

    • Il semble que ton compte ne permette pas de faire des requetes http. As tu bien autorisé les actions du script à la premiere execution?

      • Tony Content

        Il me semble bien avoir tout validé pourtant

      • lecameleon99

        Http not allowed sur la box eedomus.
        Remplace avec https tout simplement

  • Cédric Pierret

    Salut,
    j’ai le même problème que Tony Content :
    « error_msg »: « HTTP protocol not allowed on your account. »
    je vois pas ce que j’ai mal fait?
    Sinon autre chose en rapport avec les calendriers: je cherche à créer un état ou un capteur http dans mon eedomus qui me retournerais la date du jour au format aaaa-mm-jj.
    Merci d’avance

  • Jean-Pierre DE MASURE

    Merci pour ce tuto, je l’ai installé, il fonctionne nickel mais cependant il engendre tous les jours un mail avec le message : « TypeError: Impossible d’appeler la méthode « getEvents » de undefined. (ligne 39, fichier « calendrier eedomus ») »; Une idée ?? Merci !

  • lecameleon99

    Je viens de le mettre en place.
    J’ai mis par contre https pour la maj des périphériques, car j’ai désactivé le http sur la BOX. (j’ai mis du temps à comprendre pourquoi ça marchait pas, alors que je recevais les mails avec la cause…)

  • max

    Merci pour ce très bon script !
    Si j’ai bien compris, cela permet de récupérer seulement 1 événement par jour, c’est bien ça ?
    Que se passe t’il si on place plusieurs RDV sur la même journée ?
    Merci

  • Tibhix On Line

    Je viens de poster une mise à jour de ce script sur http://forum.eedomus.com/viewtopic.php?f=50&t=3039&p=32037#p32037 afin de ne gérer qu’un seul calendrier avec plusieurs types d’événements (dont les poubelles…)

  • Neopate

    Bonjour à tous, je ne comprend pas je n’ai pas de menu script dans Google , j’ai raté une étape ?

    • Dans ton drive, tu n’as pas la possibilité de creer un script?

      • Neopate

        Merci pour ta réponse rapide , comme sur l’image ci-jointe, je n’ai pas les scripts.

      • Étrange! Je n’ai jamais rencontré ce cas! As tu un autre compte google ou as tu essayé de créer un nouveau compte pour voir si tu as l’option?

      • Neopate

        Je viens de tester avec le compte de ma femme et c’est pareil,.
        On est d’accord, il ne faut pas de compte pro ?

      • Sam

        Pas de compte pro.
        Il suffit juste « d’associer plus d’applications » et de taper script dans la barre de recherche puis ajouter.

  • Neopate

    Bonjour à tous, j’ai le script qui fonctionne à merveille par contre je me retrouve avec des données à J-1, avez vous ce phénomène ?