Parlons de Gladys V4


#262

Pour ceux qui me suivent sur GitHub, je tabasse bien en ce moment sur le Backend de Gladys 4, j’avance bien dans le milestone 1 :rocket:

Les derniers jours j’ai travaillé sur:

  • L’API de gestion des maisons (création/édition/suppression) + la présence de l’utilisateur
  • L’API de gestion des pièces (création/édition/suppression)
  • L’API de géoloc
  • Gestion des refresh token (revocation, récupération d’un nouvel access token)
  • Procédure de récupération de mot de passe

#263

Salut à tous!

Petite nouvelle d’avancement de Gladys 4 :slight_smile:

Avancement du premier milestone backend

Le milestone backend v0.1 avance bien, on est à 54% des tâches réalisées. J’ai rajouté quelques todos en chemin, mais je pense qu’une fois toutes les tâches réalisées on aura déjà un backend minimal qui fait le boulot.

Documentation de l’API REST en ligne

Je viens d’héberger la documentation de l’API REST de Gladys 4 en ligne:

https://gladys-4-apidoc.gladysassistant.com/

N’hésitez pas à aller voir et à critiquer certains choix de nommage, ou de paramètre passés aux routes d’API, comme rien n’est encore sorti on peut encore tout changer. C’est toujours cool d’avoir des avis extérieurs :slight_smile:

Les scripts dans Gladys 4

J’ai une petite question pour vous par rapport aux scripts dans Gladys 4.

En terme d’interface, je me demandais si ça valait le coup d’avoir un onglet script séparés des scènes.

Est-ce qu’un script dans Gladys 4 ça ne pourrait pas être juste une action d’une scène qui dit “exécute ce bout de code JS” ?

Les +

  • Concevoir une scène complexe est plus simple, on peut dans une scène coder des bouts de code qui s’enchaine en séquentiel/parallèle depuis la même UI, sans avoir à sauter entre l’UI de scène/de script
  • Donner moins d’importances dans l’UI aux scripts dans un produit qui s’adresse à un public pas toujours dev (tout en les gardant bien-sûr pour les power user!). Est-ce que réserver un onglet entier aux scripts est utile? Pas sûr…
  • Une meilleur intégration avec les scènes. Exemple: Passer une valeur d’un trigger à une scène et retrouver la valeur dans le script.

Les -

  • Apporte peut être une complexité à l’UI de scène qui doit incorporer un éditeur de code (ce qui est lourd)
  • Les gros scripts peuvent perdre en lisibilité (d’ailleurs je n’ai pas forcément encore d’idée sur comment coder ces scripts dans la vue scène)

Dites moi votre avis sur la question, c’est un débat rien n’est encore fixé!


#264

Bonjour,
je suis très content de voir que la version de Gladys 4 avance bien ! Je ne suis pas (encore) assez expérimenté pour critiquer la doc mais je peut donner mon avis de “débutant Gladys” pour les scripts.
Après avoir passé 3 bonnes heures a installer et debugger Gladys j’ai pu tester les scripts et effectivement pour un débutant c’est un peut bizarre de les séparer des scènes, je pense que les regrouper serait une bonne chose. Je pense que les gros sripts sont dans tous les cas écrits sur un éditeur de texte a part ( sur un pc ) avant d’être envoyé a Gladys non ?

En tout cas j’ai hâte de la V4, la V3 est belle et bien plus orientée devs que débutant et je pense que sans un minimum de connaissances il est quasi impossible de la configurer comme on le souhaite.


#265

Je pense que la réponse sera oui mais on aura juste à update Gladys sans perte de donnée ou tout réinstallé ?


#266

D’accord avec toi sauf quand on veut juste le lancer tout seul à la mano pour tester un petit truc rapidement, ça reste pratique de l’avoir dans une liste à part.
A voir si la même chose est faisable dans la partie scène…


#267

Effectivement! Après le but de l’éditeur de script dans Gladys c’est que justement il est assez complet pour pouvoir coder dedans proprement…

C’est le but!

Gladys 4 est une re-écriture complète, il n’y a aucune lignes de code en commun entre les deux codebase. C’est un nouveau produit complet :slight_smile: Vu les changements, ce sera forcément une réinstallation (on change complètement de techno et de process de déploiement). En revanche on fournira probablement un outil de migration pour récupérer certaines données :slight_smile:

A voir justement quelles données on veut transférer de la v3 à la v4. Tout n’est pas bon à garder, et il ne faut pas que ça créé des bugs mystique à cause de données mal formatées de la v3.

C’est la même chose pour les scènes! C’est le but des scène, tu peux cliquer sur “play” et ça joue la scène.


#268

Salut,

mon avis : D’un point de vue utilisateur, je ne vois pas l’intérêt de séparer les scripts des scènes. Le script est une des options/actions des scènes. D’ailleurs les fusionner permettrait de déclencher un script peut être plus facilement et de le chainer à d’autres éléments des scènes.
D’un point de vue technique, si l’interface devient super méga loure pour ça, il faut mieux séparer. Mais j’imagine qu’on parle simplement d’une petite latence induite par l’affichage de l’éditeur, donc supportable.

Voici pour mon avis.


#269

Salut à tous!

Aujourd’hui j’ai bossé sur les WebSocket dans Gladys 4.

Afin de rester toujours aussi léger, ce sont des WebSockets natifs qui sont utilisés et plus socket.io comme dans Gladys 3. Cela rendra l’intégration avec les apps mobiles plus facile.

Petite vidéo de démonstration que j’ai posté sur Twitter =>

Au niveau du NLP (Natural Language Processing), j’ai là aussi avancé.

Tout les phrases du brain sont définies dans des fichiers de configuration JSON, que j’ai essayé de rendre les plus facile à comprendre possible.

Attention remarque importante: Quand je dis “facile à comprendre”, je parle d’un développeur voulant aider dans la codebase Gladys. Un utilisateur n’aura jamais à toucher à ça, c’est du code.

Voilà un exemple de fichier de configuration:

Pour les phrases custom de l’utilisateur, ce sera un tout autre process non-géré pour l’instant :slight_smile:

+1 je suis d’accord! Je vais tenter dans cette voie.


#270

Bonjour tout le monde j’ai vus ton message pierre @pierre-gilles il est très propre et simple j’aime bien continue comme sa par contre tu pourrait rajouter une box pour la température des pièces (augmenter la température, descendre la température , arrêt du chauffage, mode ors gelè …) et une autre box ou on peut géré les volet roulant (monter, descendre , stop, …) voila se que je peut te dire s’est se qui me vient a l esprit car je doit y rajouter dans mon dashboard je reviendrait des que j’ai plus idée.


#271

Salut,

Concernant tout d’abord l’écriture du script, je pense qu’il est préférable de le mettre comme tu le dis dans une scène pour l’ensemble des personnes qui utiliseront gladys.

Mais je pense qu’on peut rajouter un mode “developeur” qui permet de rajouter un onglet quand on a coché la case pour avoir un onglet script qui apparaisse et qui permet d’exécuter du script directement sur gladys sans passer par des scènes.

Deuxièmement, sur Gladys 3 je trouvais un peu particulier le json permettant de rajouter des phrases et des actions au niveau du NLP. Est-il envisagé de pouvoir rajouter soit-même des actions ? Dans un second temps, est-il possible de sauvegarder ces nouvelles phrases pour pouvoir les partager ?
C’est peutêtre un point à réfléchir.


#272

Mmm je suis pas forcément fan de cette approche. Normalement si l’UI est bien faite, pourquoi on aurait besoin de rajouter un onglet? Voyons déjà comment ça va rendre en mettant les scripts dans les scènes :slight_smile: ça se trouve c’est une mauvaise idée, mais bon sans tester on ne peut pas le savoir!

Yes comme j’ai précisé dans le message ci-dessus, le JSON n’est que pour les phrases “natives”, c’est à dire les phrases que tout le monde a part défaut. Seul les contributeurs sur GitHub (les développeurs Gladys expérimentés) auront à toucher à ce fichier, pas l’utilisateur.

Pour ajouter des phrases personnalisés propre à ton installation, exemple: Si je dis “C’est Noël!” => Alors lancer la scène “Noël”, ce sera un autre process, probablement incorporé au processus de scène avec trigger. Le trigger sera un trigger basé sur une phrase tout simplement.

Je pense que ce sera dans un second temps. On pourra effectivement faire une fonctionnalité de partage / ou une sorte d’UI communautaire interactive ou chacun peut proposer/upvoter des phrases pour la prochaine release de Gladys (façon ce que j’ai fais avec la spreadsheet communautaire de périphériques compatibles Gladys), mais bon gardons le scope de cette première release minimal afin de ne pas se perdre!


#273

Salut à tous!

Aujourd’hui j’ai une petite vidéo sympa à vous montrer! :stuck_out_tongue:

Petite vidéo de l’UI d’édition de scène, ainsi que ce qu’il se passe quand on teste une scène =>

Je suis super content du moteur d’exécution de scène, ça marche du tonnerre et les possibilités sont infinies :slight_smile:

Après je suis pas encore content de l’UI d’édition de scènes… C’est un peu lourd, et je pense que pour une scène avec 100 actions ça va vite devenir le bazar. Si quelqu’un a une idée pour rendre cette UI plus claire, ça m’intéresse!


#274

Salut, j’aime beaucoup, le style épuré me fait vibré :wink:
Sinon une petite idée pour le cas des 100 actions, mettre en place un système de “pagination” / “slideshow”. Je m’explique :

  • tu affiches par défaut 2 ou 3 étapes (First + Then)
  • sur la partie droite de la page, tu mets un indicateur “>” (next), et “<” (previous) s’il y a
  • et en dessous, tu ajoutes une sorte de raccourci style pagination pour acceder directement à l’action N, sans avoir à revenir “page par page”.


#275

Mmm je suis pas fan, ce serait très lourd comme interface et peu fluide…

Pour l’instant le principal retour que j’ai eu partout ce serait de passer en vertical au lieu d’horizontal…

A la base mon premier proto était en vertical, il y a moyen que je fasse un prototype plus poussé en vertical du coup pour comparer.


#276

Je poste ici l’idée de version verticale :slight_smile:

L’idée c’est de permettre une visibilité globale de la scène en utilisant des blocs rétractables :
En grand, on peut les éditer, en petit on voit un résumé (potentiellement tronqué) de l’action.
J’ai également rajouté des bloc conditionnels, je ne sais pas si c’est une fonctionnalité prévu :wink:

Idéalement on pourrait identifier chaque type de bloc avec une icône.
Votre avis ? :slight_smile:


#277

En fait le problème est le même non? :smiley: Certes les actions en séries sont en vertical, mais les actions effectués en parallèle sont en horizontal. Que se passe-t-il si tu as 30 actions en parallèle? Tu vas avoir du monde horizontalement et il faudra remettre une scroll bar horizontal ^^

Petite proposition supplémentaire, si on pense vertical, mais qu’on veut perdre tout scroll horizontal, pourquoi ne pas faire des blocs “groupe d’actions”, chaque bloc peut être compacté ou ouvert et contient un ensemble de card contenant toutes les actions.

Ainsi, qu’on est 5 actions ou 100 actions, ça reste clean et sans déborder.


#278

Je vous laisse deviner sur quoi j’ai passé mon lundi… :smiley:

C’est pas fini, mais ça avance bien!

Mon objectif: avoir absolument toutes les fonctionnalités d’une box domotique Z-Wave, même les fonctionnalités les plus tech (visualiser le graph du réseau mesh Z-Wave par exemple).

L’utilisateur n’aura pas à passer par une autre box domotique pour faire des opérations de configurations/maintenance, tout sera dans Gladys.


#279

Cool t’a bossé sur le zigbee :blush:


#280

Salut, super cool !

quand tu auras besoin de testeur pour l’intégration n’hésite pas, j’ai pas mal de matos zwave de différentes marques / fonctions.


#281

Donc la on parle de modules? On va pouvoir commencer à migrer ceux du V3 en V4 ???