Questions sur api Rest

Bonjour la communauté,
j’aimerais faire une requête REST à gladys, mais je suis bloqué par d’authentification, (er 401)

je ne retrouve pas l’info sur le type d’authentification utilisé ni quel mdp il faut utiliser ? (compte du raspberry ou admin gladys)

pour info j’utilise python et le module requests (je débute en programmation)

merci

Bonjour,

Je sais pas si tu as vu mais sur le repo Github de Gladys tu as un export du logiciel Insomnia Core qui permet de tester les requêtes sur l’API de Gladys.
Une fois le logiciel installé et le fichier d’export importé dans Insomnia, il te suffit de changer les variables d’environnement une première fois pour changer l’URL de ton server Gladys.
image

Puis il te suffit de te loguer via Insomnia (User → login) avec les identifiants / password de ton admin Gladys afin de récupérer un token d’accès (access_token) que tu peux aller modifier dans les variables d’environnement une nouvelle fois.

C’est cet access_token qui te sera utile une fois logué via Python pour réaliser tes appels REST.

1 « J'aime »

ok merci je regarderais çà (vais me renseigner sur gotify car je ne connais pas du tout)

Pardon je voulais écrire Gladys et non Gotify, je bosse sur une possible intégration de ce service Gotify, je dois être un peu formaté par ça :wink:

Hello @Ook ! Pour l’instant l’API REST de Gladys 4 est plutôt pour un usage « interne » à Gladys, il n’y a pas encore de mécanisme de token longue durée pour pouvoir utiliser l’API de façon externe (avec une clé d’API)

C’est néanmoins un développement prévu, qui est listé ici :

Tu peux mettre un vote sur la fonctionnalité si tu veux la voir dans Gladys :slight_smile:

Par curiosité, pourquoi voudrais tu utiliser l’API de façon externe ?

En attendant, deux possibilités

1) L’API MQTT

Si tu veux envoyer des nouvelles valeurs de périphériques, tu peux passer par l’API MQTT de Gladys (plus d’explications dans la doc), c’est le plus propre selon moi :slight_smile:

2) Passer par un token « utilisateur » comme si tu étais le frontend

Si vraiment tu veux utiliser l’API dans un script avant que les tokens d’API soient disponibles, tu peux passer par le flow de login dans ton script pour récupérer un access_token et un refresh_token, puis appeler l’API de Gladys avec un access_token dans le header « Authorization ».

C’est moins clean que via les futures clé d’API, mais ça fait le boulot en attendant :slight_smile:

mon but est double, je travaille sur un scripts de reconnaissance et synthèse vocale, et je voulais le faire exécuter un scénario(globalement tout éteindre en partant)

deux par pédagogie, car j’apprend python presque tout seul et j’ai déjà réussi a consommer une api rest d’un logiciel de mon taf, et je veux essayer avec une autre pour m’habituer a cette techno.

du coup je pense que l’équivalent front end m’irai
sinon je bidouillerai en mqtt si je peux envoyer un indicateur de présence départ… merci de l’info !

1 « J'aime »

Top :slight_smile: Effectivement l’option frontend est la meilleure pour toi.

Ce que je te conseille pour bien comprendre comment ça marche, c’est d’ouvrir l’inspecteur de ton navigateur onglet “Request” en étant sur le front de Gladys.

Tu verras toutes les requêtes passer, et tu pourras faire pareil dans ton script Python.

N’hésite pas si tu as des questions :slight_smile:

1 « J'aime »

J’ai réussi ! merci pour les conseils ! ma reconnaissance vocale arrive a lancer des scénario ! trop content ! plus qu’a essayer de le faire sur le raspberry !

Génial! :clap::clap: par curiosité il fait quoi exactement ton script ?

N’hésite pas à partager avec la communauté ton setup :slightly_smiling_face:

c’est un script en python qui est en écoute sur un micro, il effectue une reconnaissance vocale sur mot clé. (module pocketsphynx)

Jusqu’à présent il me lançait mes applications a la demande, et maintenant il execute une scène dans Gladys. (extinction des lumières)

Pour le moment c’est sur mon pc en win10 pro il faut que je le refasse pour mon raspberry. ce sera la prochaine étape !

3 « J'aime »

Bonjour je rebondis sur le sujet pour une question a laquelle je ne trouve pas la réponse. est il possible via l’API de récupérer des infos de consommation électrique d’une prise connectée ou n’est ce pas possible? merci d’avance

Hello @desdamo, tu veux la consommation instantanée ou des historiques de consommations?

Déjà attention, il n’y a pas encore de mécanisme de clé d’API dans Gladys 4 (prévu mais encore développé), donc l’API est consommable uniquement “en faisant comme si ton script est le frontend”.

Si tu veux en instantanée (et que ta prise remonte des informations de consommation biensur), tu peux accéder à la conso via ce GET il me semble: Loading...

Hello @pierre-gilles je veux récupérer via un front-end récupérer la consommation de plusieurs prises connectés. Pas d’instantané car je veux connaître la consommation semaine ou jour en moyenne. Est ce possible ?

@desdamo pas actuellement, mais on a une PR qui va dans ce sens ( Chart box on dashboard by euguuu · Pull Request #966 · GladysAssistant/Gladys · GitHub )