Intégration Node-RED pour lancer un container en un clic

@Lokkye Super boulot :slight_smile:

Tu as moyen de déplacer le bouton « Désactiver » et de le mettre en rouge ? C’est pas très visuel je trouve de mettre un bouton dans un bandeau d’annonce.

Je mettrais bien le bouton en bas de la page:

1 « J'aime »

Je confirme, parfaitement fonctionnel.
Bouton déplacé comme tu as dit (la suggestion de @pierre-gilles est excellente) et container supprimé à la désactivation.
Plus qu’à écrire la doc qui renvoie actuellement vers un 404 :cowboy_hat_face:
Bravo ! Je n’aurai bientôt plus d’excuse pour me lancer dans node-red (pour contrôler l’état de la voiture…) ! :sunglasses:

1 « J'aime »

@pierre-gilles @GBoulvin

Voici le résultat avec le bouton déplacé


J’ai refait une image docker avec les changements :slight_smile:

4 « J'aime »

Merci pour les changements @Lokkye ! :slight_smile:

C’est mieux mais j’ai quelques retours/questions :

  • Pourquoi afficher « état du service node-red » lorsque Node-RED n’est pas activé ?
  • Si l’utilisateur ne tourne pas sous Docker ou avec une configuration qui ne permet pas de lancer un container, est-ce qu’il y a un message spécifique avec le bouton « activer » non cliquable?
  • Les boutons « Activer » et « Désactiver » mériteraient peut-être d’être à gauche non?
  • Comment est calculée l’URL de l’interface Node-RED ? Il faut préciser que cette URL n’est accessible qu’en local. (notamment pour qu’il n’y ait pas de confusion via Gladys Plus)
  • Pour le bouton « Désactiver », est-ce qu’il a une confirmation avant désactivation ? Pour éviter de tout détruire sur un misclick :smiley:

Voilà c’est tout pour moi, des petits détails d’UX mais qui à mon sens ont toute leur importance :slight_smile:

Super cette fonctionnalité.
Je suis intéressé mais n’ai pas l’intégration dans Gladys.
Y a t il une procédure « standard » pour installer cette intégration?
Merci.

Pour le moment c’est développement, vu l’avancée je pense que ça ne devrait pas tarder à arriver dans une prochaine version :wink:

Si tu es pressé tu peux aussi installer Node-Red toi même à côté de Gladys, c’est ce que beaucoup ont fait ! (avec ce tuto en prime : Nouvelle vidéo: Intégrer Node-RED avec Gladys Assistant en MQTT!)

2 « J'aime »

C’est caché maintenant

Oui


C’est fait :slight_smile:

Elle est basé sur « config.localApiUrl » plus le port qui est retourné par l’api

C’est fait :slight_smile:


Tu as complètement raison

Comme dab, j’ai sortie une nouvelle image docker :slight_smile:

3 « J'aime »

Merci pour tous les changements :slight_smile:

J’ai essayé de faire un test de bout en bout mais j’ai eu des petits soucis.

Au début, j’ai essayé de lancer le container mais j’avais plus de disque disponible sur ma VM de test :stuck_out_tongue: (là c’est pas lié à la PR, au moins c’est l’occasion de tester le message d’erreur)

(D’ailleurs petite typo sur « serveur »)

J’ai trouvé le comportement du « Désactiver » un peu bizarre, ça fait un saut de gauche à droite:

Ensuite, je vide mon disque et Node-RED se lance bien:

(Petite remarque design sur le screenshot)

Sauf que si j’essaie de me connecter à Node-RED, j’ai une erreur:

En regardant les logs:

2023-09-08T10:36:31+0200 <info> checkForContainerUpdates.js:13 (NodeRedManager.checkForContainerUpdates) NodeRed: Checking for current installed versions and required updates...
2023-09-08T10:36:31+0200 <info> checkForContainerUpdates.js:17 (NodeRedManager.checkForContainerUpdates) NodeRed: update #2 of the container required...
2023-09-08T10:36:31+0200 <info> checkForContainerUpdates.js:34 (NodeRedManager.checkForContainerUpdates) NodeRed: update #2 of the container done
2023-09-08T10:36:31+0200 <info> installContainer.js:44 (NodeRedManager.installContainer) Nodered: is being installed as Docker container...
2023-09-08T10:36:31+0200 <info> installContainer.js:45 (NodeRedManager.installContainer) Pulling nodered/node-red:latest image...
2023-09-08T10:36:56+0200 <info> installContainer.js:49 (NodeRedManager.installContainer) Nodered: Preparing environment...
2023-09-08T10:36:56+0200 <info> configureContainer.js:16 (NodeRedManager.configureContainer) NodeRed: Docker container is being configured...
2023-09-08T10:36:56+0200 <info> configureContainer.js:34 (NodeRedManager.configureContainer) NodeRed:  configuration file already exists.
2023-09-08T10:36:56+0200 <info> installContainer.js:52 (NodeRedManager.installContainer) Creation of container...
2023-09-08T10:36:56+0200 <info> installContainer.js:57 (NodeRedManager.installContainer) NodeRed: successfully installed and configured as Docker container
2023-09-08T10:36:56+0200 <info> configureContainer.js:16 (NodeRedManager.configureContainer) NodeRed: Docker container is being configured...
2023-09-08T10:36:56+0200 <info> configureContainer.js:34 (NodeRedManager.configureContainer) NodeRed:  configuration file already exists.
2023-09-08T10:36:56+0200 <info> installContainer.js:80 (NodeRedManager.installContainer) NodeRed: container is (re)starting...
2023-09-08T10:37:01+0200 <info> installContainer.js:86 (NodeRedManager.installContainer) NodeRed: container successfully started

Je suppose que du coup le fichier de configuration est encore l’ancien!

Du coup, si jamais j’ai déjà configuré Node-RED une fois, je suis bloqué (je pense que l’ancien mot de passe est encore dans le fichier). En testant le hash contre le mot de passe, effectivement c’est pas le même mot de passe. Est-ce que tu supprime bien le dossier /var/lib/gladysassistant/node-red si l’utilisateur décide de trasher l’intégration Node-RED ?

Au niveau des traductions, j’ai quelques feedbacks:

  • « server » → « serveur » en français
  • Il faudrait uniformiser le nom « Node-RED » dans l’intégration. Le nom officiel est bien « Node-RED », sauf que là il y a plusieurs casse dans l’UI (Node-red, NodeRed).
  • Pour le lien de la documentation, est-ce que tu peux mettre « node-red » en minuscule ? Il y a de la casse là.

Autre question plus générale, est-ce qu’on figerait pas la version de Node-RED ? (Au moins une version majeure ou mineure)

J’ai peur qu’on se retrouve avec les mêmes bugs qu’on a eu sur Mosquitto où au beau milieu de l’été une version pourrie a été poussée de leur côté et ça a tout cassé chez les utilisateurs Gladys.

Je sais qu’on fait pas ça sur Zigbee2mqtt, mais je sais que Node-RED ils sont assez « agressifs » sur les mises à jour et souvent de ce que je lis sur le forum, les mises à jour cassent tout.

Par exemple, on pourrait utiliser le tag:

nodered/node-red:3.1 

Pour les mises à jour, on pourra les faire manuellement côté code, en faisant des tests avant de changer.

Tu en penses quoi ?

Merci en tout cas pour l’intégration et tout le travail, c’est du très beau boulot :smiley: :clap:

1 « J'aime »

@Lokkye
Chapeau bas pour ce développement ! Je pense vraiment qu’il était une nécessité pour l’utilisateur lambda car il ne nécessitera plus de faire des manips en ligne de commande pour avoir node-red avec Gladys et permettra à tout à chacun d’intégrer à Gladys n’importe quel matériel via node-red comme je l’ai fait avec mon IPX800V5 ou de couvrir n’importe quel besoin ! Par exemple ici, j’envoie à Gladys l’a hauteur et l’azimut du soleil à intervalle fixe pour piloter des volets roulants !

Bon maintenant l’intégration de la reco vocale (Docker) et le Text To Speech (Docker images - TTS 0.16.6 documentation) dans Gladys via des container ? :crazy_face: :partying_face:
Merci encore pour ce dev et vivement qu’il soit en prod ! :wink:

2 « J'aime »

Merci @pierre-gilles pour le test complet :slight_smile:

A mince, j’avais oublié. Je viens de commit le changement

Je viens de tous fixer dans le dernier commit.

Tu as raison. je prefere moi aussi fixé une version, au moins on sait ce qui est vraiment installé.
C’est corrigé dans le dernier commit

L’image docker est en cours de création avec tous les chagements

1 « J'aime »

Merci pour les changements @Lokkye, j’ai stoppé puis relancé Node-RED et maintenant ça marche :partying_face:

Quelques retours:

  1. Il y a toujours le problème de marge sur le bouton « Désactiver ». Avec une petite class « mt-4 » (margin-top 4) sur la div « état du service Node-RED », ça rend mieux je trouve :

  1. Le lien de la documentation a une petite typo « noder-red » au lieu de « node-red »

  2. Toujours le petit « saut » lors de la désactivation du service (même vidéo que dans mon précédent message)

Sinon tout le reste est bon :slight_smile: Beau boulot !

Oops, j’avais oublié, c’est fixé maintenant

Fixé

Qu’est ce que tu penses de cette version ?

2 « J'aime »

Merci pour tous les changements!

C’est beaucoup mieux :slight_smile:

Si tout est bon pour toi tu peux relancer un build et je ferais une review finale ?

@pierre-gilles: Le build de l’image docker est fini :slight_smile:

1 « J'aime »

Comment ça se passe quand on fixe une version coté Gladys avec watchtower ? Watchtower ne mets pas à jour le conteneur en dernière version ?

Top je vais tester @Lokkye !

Non ! Watchtower met à jour un container si l’image référencée est mise à jour, pour passer d’une version à l’autre, il faut utiliser un tag « large » dont l’image est écrasée à chaque version.

Par exemple, Node-RED met à disposition un tag « latest », « 3.1 », et « 3.1.1 »:

  • latest → sera mise à jour par Watchtower à la dernière version
  • 3.1 → Sera mise à jour par watchtower à la 3.1 la plus récente (3.1.1, 3.1.2, 3.1.3, etc…)
  • 3.1.1 → Sera fixé à la 3.1.1

Dans le cas où on fixe la version, c’est à nous côté Gladys de tester chaque nouvelle version et d’ensuite la proposer aux utilisateurs après vérification que ça n’explose pas tout :slight_smile:

1 « J'aime »

@Lokkye sûr que le build est fini ? j’ai pull, relancé le container, et malgré ça j’ai toujours l’ancienne version (pas de margin, et le bouton qui saute toujours)

Question idiote peut-être mais… Tu es sûr du refresh de ton navigateur ?
Je me permet de te demander car j’ai eu le cas la dernière fois, malgré un rmi/pull complet…

Yes yes j’ai rafraichi, je pense que l’image est pas à jour ou a été buildé sur une ancienne version?

C’est comme ça chez moi, c’est bon?


Édit : Pour moi, il faudrait ajouter le fait que le conteneur peut prendre jusqu’à 5 minutes pour être déployé en fonction de la machine, de la connexion etc…