Parlons de Gladys V4

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.

1 « J'aime »

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 =>

https://twitter.com/pierregillesl/status/1115961890960580608

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.

1 « J'aime »

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.

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!

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!

1 « J'aime »

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”.

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.

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:

1 « J'aime »

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.

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.

3 « J'aime »

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

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.

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

Carrément!

Yes on parle de module!

Par encore prêt pour la migration. Pour l’instant je m’attaque justement à des gros modules pour élaguer tous les problèmes « classiques » des modules et ensuite faire une documentation « comment migrer un module de la v3 à la v4 » :slight_smile: Je vous tiens au courant de l’avancée de tout ça.

N’hésite pas nous donner un “go” rapidement, même si tout n’est pas pret, on pourra peut-être voir des problèmes en avance de phase, et contribuer à la documentation. On peut servir de développeur test.
Et aussi gagner un peu de temps lors de la livraison officielle du V4.
En gros, je suis motivé :wink:

1 « J'aime »

@AlexTrovato T’inquiète pas dès que c’est bon à mon sens je vous tiens au courant! :slight_smile:

Pour l’instant je ne pense pas que ce soit le cas.

L’objectif étant de corriger un ensemble de problème de conception de la v3, ça me parait nécessaire que j’écrive avant de donner le “go” aux développeurs:

  • Des guidelines de développements
  • Un ensemble de tests automatisés

Sans ça, on se retrouvera avec les mêmes problèmes qu’on avait dans la v3. Je veux partir sur de bonnes bases sur cette v4.

Et pour l’instant comme je n’ai quasiment pas écrit de services en entier, je ne sais même pas moi même à quoi ressemble un service gladys 4 “parfait” :smiley:

Mais bon, comme tu le vois en ce moment je bosse à fond (sur ce mois d’Avril je suis 5 jours sur 7 sur Gladys, je n’ai pas eu de contrat freelance ce mois), donc ça avance très très vite :slight_smile:

2 « J'aime »

Petite question pour les experts Z-Wave:

Dans Gladys 4, chaque feature d’un périphérique a forcément une catégorie.

Comment je peux catégoriser dans le protocol Z-Wave chaque feature?

Exemple, pour mon détecteur de mouvement Fibaro, voilà un exemple de comclass que j’obtiens:

"49": {
        "1": {
          "value_id": "10-49-1-1",
          "node_id": 10,
          "class_id": 49,
          "type": "decimal",
          "genre": "user",
          "instance": 1,
          "index": 1,
          "label": "Temperature",
          "units": "C",
          "help": "",
          "read_only": true,
          "write_only": false,
          "min": 0,
          "max": 0,
          "is_polled": false,
          "value": "27.1"
        },
        "3": {
          "value_id": "10-49-1-3",
          "node_id": 10,
          "class_id": 49,
          "type": "decimal",
          "genre": "user",
          "instance": 1,
          "index": 3,
          "label": "Luminance",
          "units": "lux",
          "help": "",
          "read_only": true,
          "write_only": false,
          "min": 0,
          "max": 0,
          "is_polled": false,
          "value": "105"
        },
        "25": {
          "value_id": "10-49-1-25",
          "node_id": 10,
          "class_id": 49,
          "type": "decimal",
          "genre": "user",
          "instance": 1,
          "index": 25,
          "label": "Seismic Intensity",
          "units": "",
          "help": "",
          "read_only": true,
          "write_only": false,
          "min": 0,
          "max": 0,
          "is_polled": false,
          "value": "0.0"
        }
      },

Comment identifier ces 3 fonctionnalités (température, capteur de lumières, et capteur sismique) ?

Le label? J’ai l’impression que le label est plus une information pour l’utilisateur non?

Est-ce que le combo comclass (49 ici) + index (1, 3 et 25) peut marcher? Ou ces nombres sont propre à mon installation?

Est-ce que ça veut dire qu’il faut qu’on fasse une base de donnée de toutes les périphériques Z-Wave pour faire le mapping?

Je vais continuer mes recherches, mais si vous avez plus d’informations je suis preneur…

Je suis allé voir chez home assistant, je crois avoir trouvé ma réponse…

De ce que j’ai compris c’est effectivement le combo comclass + index qui donne les informations nécessaires.

Ici comclass 49 = COMMAND_CLASS_SENSOR_MULTILEVEL

INDEX_SENSOR_MULTILEVEL_TEMPERATURE = 1

Si vous avez d’autres informations, je suis toujours preneur!

1 « J'aime »

Un peu de visualisation de donnée aujourd’hui, j’ai travaillé sur l’UI de la page du module Z-Wave!

C’est des données de tests ici, mais en réel l’utilisateur pourra visualiser le graph de son réseau mesh Z-Wave et ainsi voir si certains périphériques sont peu connectés au réseau :slight_smile:

3 « J'aime »

Salut perso je n’aime pas trop le rendu du graphique.
Mais cela semble très intéressant pour contrôler le zwave de a à z.

Bon courage et je t’avoue avoir la hype sur la v4 qui m’avait manquer avec la v3 de gladys :wink: !

2 « J'aime »