Un angevin débutant avec Gladys

Bonjour,

Je m’appelle ludovic et j’ai 36 ans. J’ai découvert le projet Gladys via le magazine l’Officiel PC.
Depuis, je suis votre aventure et parcours le forum.

J’aime l’informatique mais je ne sais pas du tout faire du codage. Donc c’est parfois difficile de tout comprendre dans vos différents échanges. Je suis donc un candide béotien dans votre domaine.

Sinon, j’ai acheté dès l’ouverture le kit de démarrage et cela m’a beaucoup aidé.
Je n’avais jamais utilisé de ma vie un raspberry et utilisé un terminal et j’ai pu faire sans problème l’installation de Gladys, sa mise à jour sur la dernière version et l’installation du module météo et télégram.

C’était très facile avec les vidéos. J’ai suivi à la lettre les instructions en faisant des pauses sur les vidéos.
J’ai donc réussi l’installation du premier coup !

Concernant le tutoriel, à mon avis il faudrait rajouter une ligne pour bien configurer l’heure du Raspberry. Par exemple au moment d’étendre Gladys sur l’ensemble de la SD avec config. Au début, je ne comprenais pas pourquoi il y avait 2 heures de décalage. J’ai cherché sur les forums et j’ai trouvé tout seul comment régler le problème. Mais pour quelqu’un de complètement novice comme moi cela peut être utile de l’indiquer dans le tutoriel. Cela permettra de gagner du temps.

D’ailleurs, quand il y aura des corrections ou améliorations du kit, pourrons nous avoir les mises à jour ?

Pour le moment, je ne suis pas allé dans les scripts car je ne comprends pas le langage Java et je ne veux pas faire de bêtises. C’est trop compliqué pour moi.

Sinon j’ai quelques questions

  • Je n’arrive pas du tout à installer le module calendrier de google. La procédure écrite semble ancienne et ne correspond pas au site google dev. Du coup, je ne sais pas générer les paramètres à installer. Dommage, qu’il n’y a pas une vidéo sur cela comme dans le kit. Est ce que quelqu’un peut me donner une procédure point par point pour installer le module et le configurer?

  • Je souhaite savoir si c’est possible de dire à Gladys par exemple « note un RDV le 28 octobre à 10H » et qu’elle me demande en retour l’objet du RDV et le lieu pour l’intégrer directement dans le calendrier google.

  • A priori Gladys peut calculer le temps de trajet de manière native pour me réveiller à temps. Du coup faut il installer quand même le module Google Direction ou cela n’est pas nécessaire car la dernière version de Gladys possède déjà cette capacité ?

-Enfin une dernière question concernant la programmation d’un réveil. Par exemple dans Télégram j’indique réveille moi demain à 8H. Gladys me répond que c’est bon et que l’alarme est créée. En revanche je ne reçois pas de notification le lendemain. J’ai pourtant fait un scénario. Exemple de ma procédure:

  1. je vais dans scénarios
  2. je clique sur nouveau
  3. je donne un titre (exemple réveil)
  4. je clique sur suivant et je prends la catégorie alarme
  5. je clique sur quand une alarme se déclenche et je prends dans la liste déroulante Alarm
  6. je ne rajoute pas d’autres conditions et je fais suivant.
  7. j’ajoute ensuite « crée une notification Gladys »
  8. je donne un titre ex réveil un texte ex Bon réveil, priority 1, rien sur icon et icon color (car je ne sais pas où trouver ces infos) et pour l’user je me choisis.
  9. je fais enregistrer le scénario.

Voilà c’est tout pour le moment.

A bientôt

Ludo

Salut,

Je vais répondre à ce dont je suis en mesure de répondre :slight_smile:

C’est du Javascript :wink:
Le Java est bien différent.

Bon peu importe ^^

Je souhaite savoir si c’est possible de dire à Gladys par exemple “note un RDV le 28 octobre à 10H” et qu’elle me demande en retour l’objet du RDV et le lieu pour l’intégrer directement dans le calendrier google.

Alors, je ne sais pas bien si la prise de rendez-vous fonctionne car je n’utilise pas le module google calendar, mais en l’état, ca devrait assez facilement réalisable je pense (du moins la reconnaissance de la phrase).
En revanche pour la réponse demandant des précisions, je n’ai pas vu de news sur l’ajout d’une telle fonctionnalité “d’échange” entre Gladys et l’utilisateur.

A priori Gladys peut calculer le temps de trajet de manière native pour me réveiller à temps. Du coup faut il installer quand même le module Google Direction ou cela n’est pas nécessaire car la dernière version de Gladys possède déjà cette capacité ?

Je crois qu’il faut installer ce module, Gladys ne sait pas sinon sur quelle fournisseur se baser.

Sinon concernant ton scénario, ca me semble bon, en revanche, quelle notification souhaites-tu ? A mon avis il faut que tu enregistres dans les parametres l’ordre des services de notifications voulus

Salut @ludo49, et bienvenue :smile:

Pour revenir sur la création de ton scénario, on va reprendre à partir de l’étape 7 :

  1. j’ajoute ensuite “crée une notification Gladys”

Si tu veux uniquement une notification via Telegram, tu peux aussi créer un script puis faire “Exécuter un script” à cette étape.
Ex de script telegram :
gladys.modules.telegram.notify({text:‘Il est l’heure de se lever’},{id:1});

PS : je voulais un message comme toi pour mon réveil, puis au final, je me suis dit que ca serait encore plus intéressant si Gladys m’envoyait la météo. Si jamais ca t’intéresse, je peux te partager le script que j’ai crée.

  1. je donne un titre ex réveil un texte ex Bon réveil, priority 1, rien sur icon et icon color (car je ne sais pas où trouver ces infos) et pour l’user je me choisis.

Pour les infos que tu ne mets pas, tu peux par exemple mettre :
icon : fa fa-home
icon color : bg-blue
priorité : 0

lien pour les icons : _
_ http://fontawesome.io/icons/

Après, il faut que tu ailles dans Paramètres puis Notifications et définir un ordre de priorité pour te contacter.
Par exemple :
0 : Web socket
1 : Telegram

Gladys va ensuite essayer de te contacter selon l’ordre de priorité que tu as définis. Donc dans mon exemple d’abord par web socket. Si Gladys n’arrive pas à te contacter, elle essaye ensuite sur la priorité d’après et ainsi de suite.

  1. je fais enregistrer le scénario. -> OK

Voila, n’hésite pas si tu as d’autres questions ou problèmes.

Merci pour tes réponses.
C’est sympa.

Super Seb63200, j’ai réussi grâce à toi à avoir une réponse sur télégram quand je programme un réveil.
Je ne savais pas qu’il fallait faire en fait un script spécifique. Du coup, si l’on ne maîtrise pas le codage c’est galère pour un newbie comme moi !

Je veux bien ton script pour avoir la météo au réveil. C’est vrai que c’est plus intéressant qu’un simple message de Gladys. Et merci pour le lien avec les icons. Cela va m’aider.

Encore merci.

Alors, en fait tu n’es pas obligé de faire un script spécifique pour avoir des notifications.
Tu peux très bien faire comme tu avais tenté au début en passant par “Créer une notification”, il faut juste bien régler tes priorités dans Paramètres puis Notifications.

Moi je souhaitais simplement avoir une notification Telegram donc c’est pour ça que j’ai crée un script. J’imagine qu’il doit y avoir d’autres moyens de le faire.

Sinon pour le script météo, le voici :

//Ton lieu à l’heure actuelle
var options1 = {
latitude: A remplacer par tes coordonnées,
longitude: A remplacer par tes coordonnées
};

//Ton lieu dans 5h
var options2 = {
latitude: A remplacer par tes coordonnées,
longitude: A remplacer par tes coordonnées,
offset: 5
};

gladys.weather.get(options1)
.then((result) => {
var temp = result.temperature;
var wea = result.weather;
var humi = 100 * result.humidity;
var wind = result.windSpeed;
switch (wea){
case “snow”:
wea = “Il neige.”;
break;
case “rain”:
wea = “Il pleut.”;
break;
case “clear”:
wea = “Le ciel est dégagé.”;
break;
case “cloud”:
wea = “Le ciel est couvert.”;
break;
case “fog”:
wea = “Il y a du brouillard”;
break;
case “sleet”:
wea = “Il grêle.”;
break;
case “wind”:
wea = “Le mistral est de sortie.”;
break;
default:
wea = ‘Le ciel est :’+ wea+’.’;
}
var text = ‘Il fait ’ + temp + ’ degrés. \n’+ wea +’ \nVent : ‘+ wind +’ Km/h. \nHumidité : ‘+ humi +’%.’;
gladys.modules.telegram.notify({text:text},{id:1});

});

gladys.weather.get(options2)
.then((result) => {
var temp = result.temperature;
var wea = result.weather;
var humi = 100 * result.humidity;
var wind = result.windSpeed;
switch (wea){
case “snow”:
wea = “Il neigera.”;
break;
case “rain”:
wea = “Il pleuvra.”;
break;
case “clear”:
wea = “Le ciel sera dégagé.”;
break;
case “cloud”:
wea = “Le ciel sera couvert.”;
break;
case “fog”:
wea = “Il y aura du brouillard”;
break;
case “sleet”:
wea = “Il grêlera.”;
break;
case “wind”:
wea = “Le mistral sera de sortie.”;
break;
default:
wea = ‘Le ciel sera :’+ wea+’.’;
}
var text = ‘Il fera ’ + temp + ’ °C dans 5h. \n’+ wea +'\nVent : '+ wind +' Km/h. \nHumidité : '+ humi +'%.';
gladys.modules.telegram.notify({text:text},{id:1});

});

Il faut juste que tu ajoutes tes coordonnées dans le code à latitude et longitude.
Tu n’es pas obligé de garder tout ce qui concerne l’option2, c’est juste que je trouvais intéressant de savoir la météo dans 5h également.

Il doit aussi y avoir des codes plus propres que celui la mais bon ce dernier fonctionne bien.

Super merci !
C’est top. Je vais tester cela.

Sinon pour les notifications j’avais mis websocket en 1 et telegram en 2. Mais ça ne fonctionnait pas. Alors qu’avec le script sans problème.

Maintenant il me reste encore mon problème avec google calendar.

Pas de soucis.
Le script ne s’intéresse pas du tout à la priorité des notifications, c’est pour ça qu’il n’y a pas de problème.

En créant la notification comme tu voulais faire au début et en passant telegram en priorité 0 dans le menu Paramètres -> Notifications, tu devrais recevoir la notification sur Telegram.
A toi de voir ce que tu préféres :wink:

N’hésite pas à me faire un retour sur le script. Je le fais fonctionner seulement depuis 1 semaine mais normalement je n’ai pas oublié de cas pour faire la traduction^^

Pour ce qui du problème google calendar, je ne l’ai pas sur mon installation mais je me tentais à l’installer.
Du coup, je vais peut être me faire ça ce soir donc je pourrais te faire un retour la-dessus aussi.

@ludo49,

Je viens de faire la procédure d’installation du google calendar.
Je n’ai pas rencontré de problème.

Mes calendriers sont bien synchronisés.

A quelle étape as-tu rencontré des soucis?

Problème dès le départ pour la création de la clé sur le site de google.

En tout cas ton script météo fonctionne très bien.
Merci

Sinon pour Google, je n’arrive pas à trouver les mêmes indications que sur le tutoriel.

"Ensuite, sélectionnez APIs & auth sur la colonne latéral et cliquez sur l’onglet Credentials
Cliquez sur le bouton CREATE NEW CLIENT ID :
Application Type: Other
Name : Gladys par exemple
Copiez coller le “client ID” et le “client secret”

Allez dans Gladys, et installez ce module “Google”
Allez dans les paramètres de Gladys, et cliquez sur l’onglet “Paramètres”, puis créez 3 paramètres :
GOOGLE_API_CLIENT_ID : Le “client ID” que vous avez gardé de côté
GOOGLE_API_CLIENT_SECRET : Le “client secret”
GOOGLE_API_REDIRECT_URL: urn:ietf:wg:oauth:2.0:oob"

Quand je manipule google à la fin j’ai quelque chose comme cela:

Nom du projet: calendrier
ID du projet
calendrier-589647
Numéro du projet
1234567891234

Ainsi je ne sais pas quoi utiliser pour remplir les 3 paramètres:

GOOGLE_API_CLIENT_ID : Le “client ID” que vous avez gardé de côté
GOOGLE_API_CLIENT_SECRET : Le “client secret”
GOOGLE_API_REDIRECT_URL: urn:ietf:wg:oauth:2.0:oob

"Ensuite, sélectionnez APIs & auth sur la colonne latéral et cliquez sur l’onglet Credentials
Cliquez sur le bouton CREATE NEW CLIENT ID :

Alors si je me souviens bien, il faut que tu cliques étape par étape sur :

  • Google Apis en haut à gauche
  • Sélectionner un projet si ton projet n’est pas déjà sélectionné
  • Activer les API et les services, puis recherche Google Calendar API et active le
  • Identifiants
  • Créer des identifiants
  • ID client OAuth
  • Configurer l’écran d’autorisation
  • Donne un nom de produit que tu veux
  • Enregistrer

Et après normalement tu peux reprendre la procédure expliqué dans le module

Dis moi si ça bloque toujours

Bonjour,

Merci pour tes explications. J’ai pu avancer.

Maintenant je bloque à l’étape suivante:

Dans Gladys, retournez sur le dashboard, créez un script avec le code suivant :

gladys.modules.google.authenticate(‘VOTRE CODE’, {id: VOTRE_USER_ID_DANS_GLADYS});

Ainsi je mets bien mon code et mon id 1 mais quand j’exécute ce script ça indique "ReferenceError: ‘mon code’ is not defined.

Tu as bien conservé les ’ ’ autour de ton code?

Effectivement je n’avais pas mis les ’ ’ autour du code.

Mais maintenant quand je mets en route le script le terminal indique un message d’erreur

(node:22720) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): Error: Error: invalid_grant

Est-ce que tu arrives quand même à lancer le script de synchronisation par la suite?

Quand je lance le script de synchro j’ai ceci sur le terminal:

Google : Calendar : Syncing 0 users.

Et je n’ai rien qui s’affiche dans le calendrier de Gladys.

Tu as bien renseigner l’user comme ceci ?

gladys.modules.google.authenticate(‘VOTRE CODE’, {id: 1});

oui c’est bien comme cela.

Juste pour information, tuas bien fait

Then, go to Gladys logs on your Raspberry Pi (Type : pm2 logs gladys), you should see an url starting with “https://accounts.google.com/o/oauth2/auth?access_type=offline”.
Copy paste this URL in your browser, and connect to your Google account. It should give you a code. Copy paste this code.
In Gladys, go to the dashboard, and create a script with the following code :
gladys.modules.google.authenticate(‘YOUR CODE’, {id: YOUR_USER_ID});

Parce que si tu as eu le code, normalement il devrait pas y avoir de problème pour la suite