Catégories
Bidouille

Faire un calendrier pour remplir la grille des 366 jours géocachés

Ou comment se créer des alertes pour penser à aller chercher une géocache les jours manquants dans la grille

Nouvelle année et nouveau challenge ! Cette année, le mien sera de remplir les trous de la grille des 366 jours. Et comme je n’ai aucun sens de l’organisation ni aucune mémoire, je vais utiliser quelques outils pour me faire un système de rappel automatisé des jours à remplir. Je vous proposerai une version simple qui se fait facilement en quelques clics… et une version un peu plus geek et bien plus sympa ! Envoie de SMS, publication sur Facebook, lancement de musique, changement d’éclairage, et pourquoi pas même cuisson des toasts. Avec tout ça, à vous la grille enfin remplie… enfin, il faudra quand même aller chercher les caches.

2018-01-05
L’objectif de l’année : que du vert !

Tout d’abord pourquoi deux versions ? Parce que je voulais pouvoir vous proposer une solution très facile à mettre en place pour ceux qui le souhaitent. Mais cette solution ne me comble pas complètement à cause d’une limitation de Google Calendar (que j’utilise comme agenda) et des « petits plus » que j’aimerai intégrer au système. Je vais donc vous proposer une version « simple » suivie d’une version « geek » ou vous allez voir qu’il est possible de faire à peu près tout ce que l’on veut pour nous avertir. 🙂

[youtube https://www.youtube.com/watch?v=QvTawiuxXKo&w=560&h=315]

 

0 – Prérequis. Pour la version simple il nous faudra deux choses : un compte sur Project-GC et un agenda électronique tel que « Google Calendar », mais n’importe lequel fera l’affaire du moment qu’il gère les notifications. Le compte Project-GC doit être premium, toutefois n’hésitez pas à m’envoyer votre pseudo (sur Facebook ou via la page de contact), je vous enverrai le fichier.

Pour la version avancée, on ajoutera Notepad++ (ou votre éditeur de texte préféré s’il gère le regex), IFTTT pour connecter l’agenda à d’autres périphériques et dans mon cas des ampoules Philips Hue, mais sur cette dernière partie n’hésitez pas à être imaginatif !

PGC
Project-Gc, la base de beaucoup de bidouilles

1 – Télécharger les dates manquantes. La première étape consiste à télécharger un fichier qui contient toutes les dates qu’il vous reste à trouver. Pour cela nous allons utiliser la fonction « Dates trouvées nécessaires » dans « Outils > Dates… » de Project-GC.

PGCDates
Le module spécifique aux dates manquantes

Sur la page « Dates trouvées nécessaires », remplissez le champ « pseudo » en cliquant sur le personnage ou éventuellement entrez un autre compte si vous avez un compte Project-GC pour plusieurs comptes geocaching. Puis cliquez sur « Filtrer ».

PGCPseudo

A noter que l’on peut ajouter des filtres supplémentaires, si vous êtes maso et que vous souhaitez trouver une D5 ou une nano par jour de grille calendaire, par exemple.

PGCFiltres
Pour les plus motivés !

Voici le résultat ! Project-GC nous affiche la grille des jours restant à valider. Dans mon cas, il me reste(ait) 55 jours à valider. Nous pouvons télécharger le fichier calendrier et quitter Project-GC.

PGCTElecharger
Que de trous dans cette grille :s

 

2 – Créer un nouvel agenda : c’est là que les geeks nous quittent pour aller en numéro 5.  Pour ceux qui veulent une version simple, on continue 🙂  Simplement une petite information : si vous prenez la version simple vous aurez une notification (si vous en voulez une) la veille du jour J et non pas le jour J. Si cela ne vous convient pas, allez également au point 5… Waouww, on se croirait dans « un livre dont vous êtes le héros ».

Nous allons ouvrir l’agenda électronique. J’utilise Google Calendar vu que j’ai vendu mon âme (et mes données personnelles) à Google, mais l’opération sera globalement similaire sur les versions de Microsoft, Apple et consorts. Tout d’abord, je vous conseille vivement de créer un nouvel agenda dans votre calendrier histoire de ne pas mettre le chaos dans votre organisation. Cliquez sur le « + » dans la barre de gauche. Si celui-ci n’apparaît pas, il vous faudra cliquer sur les 3 traits à gauche de « Google Agenda ».

GAPresentation
Si vous arrivez à lire ce qui est en jaune, vous devriez voir les prochains articles du blog 😉
2018-01-01 (10)
Plus que conseillé : un nouvel agenda

Puis nous pouvons donner un titre à notre nouvel agenda, une description si vous le souhaitez, puis choisir valider avec « Créer un agenda ».

GACreerA
oups…. j’ai oublié les « s » :p

 

3 – Remplir l’agenda : notre agenda étant créé, il ne reste qu’à le remplir. Pour cela, rien de plus simple on réutilise le bouton « + » et cette fois-ci on choisi « importer ».

GAImporter

Puis nous choisissons « Sélectionner un fichier sur votre ordinateur », puis indiquez le fichier ‘PGC-Needed-FoundDates » en enfin choisissez l’agenda que vous venez de créer (Géocaching dans mon cas).

GAImportFichier

Enfin quand tout est bon : « Importer ».

GAImportFIn

Et voilà ! Nous avons les trous du calendrier de géocaching sont remplis.

GAFini
Il n’y a plus qu’à sortir des jours en rose

 

4 – Les notifications : Mais on peut faire un peu mieux et ajouter une notification pour que Google nous rappelle qu’il faudra chercher une cache. À droite de votre agenda « Géocaching », cliquez sur les « trois points » puis « Paramètres et partage ».

GANotif

C’est ici que l’on va gérer les notifications. Dans « Notification des événements « Toute la journée » » cliquez sur « Ajouter une notification » puis choisissez quand vous voulez être prévenu. Vous pouvez ajouter autant de notifications que vous le souhaitez. Par contre, vous ne pourrez pas mettre « 0 jour » car même si aucun message d’erreur n’apparaît, vous n’aurez pas de notification. Par contre, vous pouvez recevoir un mail le matin, avec l’information. Voilà, vous n’avez plus n’excuses pour rater un jour.

GAparametrageNotif

Screenshot_alerte
Allons géocacher !

 

5 – Version avancée, le pourquoi du comment : Ici nous allons essayer d’aller un peu plus loin dans les notifications et pour ce faire il faut modifier un élément important qui permettra de débloquer plusieurs possibilités, à savoir le créneau horaire de « l’événement ». En effet si l’événement est planifié sur la journée, il ne sera pas possible d’avoir une notification le jour J à l’heure que l’on souhaite, mais seulement la veille. De plus, si l’on veut déclencher une série d’actions à une heure précise le jour J, il faut que l’on puisse maîtriser les horaires.

 

6 – Modification du fichier de Project-GC : C’est ici que l’on va se servir de Notepad++. Alors pourquoi cet éditeur de texte plutôt qu’un autre ? Il est gratuit, open source, ultra performant, modulable et surtout… il gère les regex !

logo_400x400
mon logiciel chouchou avec sa bonne tête :p

Regex (regular expression), ça veut dire expression régulière. Pour faire simple, c’est un moyen très pratique pour faire des recherches et/ou des remplacements dans des chaines de caractères à l’aide de formules. Mais stoppons là la digression et revenons à nos moutons.

Commençons par ouvrir le fichier « PGC-Needed-FoundDates.ics » avec Notepad++. Ici nous voyons nos différents événements qui commencent par « BEGIN:VEVENT » et finissent par « END:VEVENT ». De même, nous pouvons voir que la période est définie par les éléments « DTSTART;VALUE=DATE:20180101 » et « DTEND;VALUE=DATE:20180102 » ce qui veut dire que l’événement est compris entre le 1er janvier 2018 et le 2 (non inclus). En fait nous voudrions avoir quelque chose du genre « DTSTART:20180101T070000Z »
« DTEND:20180101T080000Z » pour dire que l’événement est le 1er janvier, mais uniquement entre 8 et 9 heures, dans cet exemple.

NPAvant
Le genre de syntaxe que vous devriez avoir au départ

On pourrait faire les modifications à la main dans le fichier ou directement dans l’agenda, mais franchement faire ça 55 fois, ça va vite être pénible. C’est là que les regex nous sauvent ! On va tout modifier d’un coup  pour toutes les dates ! Ma fainéantise en frétille de contentement ! Commençons par faire un CTRL+H ou « Edition > Remplacer » pour aller dans le module de remplacement.

C’est là que les choses se compliquent un peu : on va remplir le champ de recherche avec ceci :

DTSTART;VALUE=DATE:(\d+)
DTEND;VALUE=DATE:(\d+)

Ça veut dire que l’on sélectionne toutes les expressions qui commencent par DTSTART… ainsi que les valeurs qui sont incluses dans ces lignes, quelles que soient ces valeurs. Dans le champ « remplacer par » on va mettre quelque chose comme :

DTSTART:($1)T070000Z
DTEND:($1)T080000Z

Le ($1) permet d’insérer notre premier (\d+) donc la date de l’événement. La série de chiffres après le « T » est l’heure sous la forme HHMMSS, sachant qu’il faudra soustraire 1 heure (alors là, ne me demandez pas pourquoi… peut-être parce que l’heure de Paris est en H+1).  Donc si vous voulez mettre 6h du matin vous utiliserez « …T050000Z. Ici bien sûr vous mettrez les heures que vous voulez. Dans mon cas, seule l’heure de début m’intéresse soit de 8h à 9h sachant que pour moi l’heure de fin n’a pas d’importance, mais selon ce que vous voulez mettre comme « alarme » vous pourriez avoir intérêt à bien choisir le créneau. Cochez la case « Expression régulière » et bien sûr, une fois que vous êtes décidé, cliquez sur « Remplacer tout ».

NPcasesaremplir

NPApres
La syntaxe que vous devriez avoir sur tous vos événements à la fin

Tant que je suis dans Notepad++, j’en profite pour changer l’intitulé donné par Project-GC. « Missing found date » ce n’est pas très glamour…. je vais donc remplacer par « C’est une belle journée pour géocacher », ce sera plus sympa ! Ici on se contentera de mettre « Missing found date » dans « recherche » et ce que vous voulez dans « Remplacer par », puis « Remplacer tout ».

NPBellejournee
Un peu de cosmétique pour notre agenda

Vous pouvez maintenant revenir au numéro 2. La seule différence sera que votre événement sera présent uniquement sur la plage horaire que vous avez sélectionnée et que vos notifications se feront dans la partie « Notification relative à un événement ». Une fois le point 4 terminé, vous pouvez finir avec le 7… Oui, je sais, c’est compliqué :p

7 – Connexion de notre agenda avec le Monde !!! Carrément :p et ceux grâce à IFTTT. Si vous ne connaissez pas, IFTTT (If This, Then That) permet de relier les services (disposants d’API compatibles) très facilement entre eux. Il est également possible de connecter certains appareils ou services non listés dans IFTTT, si vous avez accès à l’API, mais je n’aborderai pas ce cas ici (vu que c’est galère à faire et que je suis nul :p), mais par exemple j’ai connecté ainsi ma box domotique qui gère mes prises électriques et mes lumières. A noter que je présente IFTTT en version web, mais il est tout aussi pratique en version « app » pour smartphone.

ifttt-banner
Si vous ne connaissez pas, jetez-y un œil, ça vaut le coup !

La première étape sera d’intégrer vos différents services dans IFTT. La liste est énorme et grandit régulièrement. Il y a donc des chances que vous trouviez votre bonheur dans le listing. L’élément indispensable sera bien sûr Google Calendar. Si vous utilisez votre compte Google pour vous connecter, je crois qu’il est intégré d’office, sinon je vous montre la procédure avec mon compte HUE. Allez sur Votre pseudo puis « Services » et enfin « All services ». Vous pouvez faire défiler la liste pour trouver vos services ou saisir son nom.

IFservices

IFService2

Cliquez sur « Connect » puis autorisez la connexion. Selon le service que vous intégrez à IFTTT la page sera d’un type différent. Faites cela pour Google Calendar (ou votre calendrier iOs/Office) et vos autres services.  Puis retourner sur votre pseudo et cliquez sur « New Applet ».

IFHue

Et là, c’est le plus simple : un clic sur le « + » pour indiquer une condition et sélectionnez votre service. En tapant « Calendar » on va gagner du temps :p et sélectionnez votre calendrier puis l’élément déclenchant. Ici je vais prendre « Any event starts ». Vu que nous avons créé un calendrier à part, c’est parfait.

IFNewapplet
If…
Ifchooseservice
On gagne du temps en entrant le service à connecter
IFstart
Si vous avez un calendrier partagé, il faudra choisir la deuxième case et entrer l’intitulé de l’événement

On choisit le calendrier qui nous intéresse, c’est-à-dire « Géocaching – jours restants » (oui, j’ai changé le nom en cours de route, vu que je fais deux versions du tuto ») et le délai. Puis « Create trigger ».

IFstartHUe

Nous avons donc créé l’élément déclencheur, il n’y a plus qu’à choisir ce qu’il va provoquer. Cliquons à nouveau sur le « + », puis de la même façon on choisit le service et l’action. Là encore, il y a beaucoup de possibilités ! On peut faire clignoter les lumières ou les allumer d’une certaine couleur. Pour la démo, je vais leur faire faire une boucle chromatique, mais en pratique mettrais seulement une couleur différente. Choisissons ensuite quelles lumières : je vais mettre « toutes », mais là encore en pratique une seule suffira. Terminons par « Create action » puis il faudra donner un nom à l’action puis « Finish ».

IFsuite

IFchoix
En mode boite de nuit

iffinish

Et voilà ! Mission accomplie ! Lorsqu’il y aura un nouveau jour à remplir, le PC et le téléphone afficheront des notifications et les lumières passeront par toutes les couleurs.

8 – Et plus encore ? Alors oui, il est possible de faire bien plus avec IFTT! On pourrait par exemple s’envoyer (ou à votre géoTeam) un message par SMS, Messenger ou tout autre système, publier automatiquement un message sur Facebook, Twitter ou un autre réseau social pour proposer une sortie, ajouter la date sur un autre agenda, couper le chauffage pour s’obliger à sortir du lit :p, jouer une musique motivante ou un message que l’on aurait enregistré, etc., etc. Seule votre imagination est votre limite ! Et pour vous prouvez que finalement on peut quasiment tout faire, il vous suffit d’ajouter une prise connectée compatible avec IFTTT type Weemo pour que votre café se mette à couler et vos toast à dorer.

Alors, cela va-t-il me permettre de boucher les trous de ma grille ? Eh bien non, car je ne géocache que quand j’en ai envie :p Allez ! Rendez-vous à la fin de l’année pour le bilan !

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *