Voici l’image docker : delogzway/gladys:nodered
Voici mon retour…
Quand on clique sur l’intégration node-red, on obtient ceci:
Donc, c’est déjà activé?
Il semblerait que non car interface inaccessible… Pourtant :
2023-06-29T18:09:51+0200 <info> checkForContainerUpdates.js:13 (NodeRedManager.checkForContainerUpdates) NodeRed: Checking for current installed versions and required updates...
2023-06-29T18:09:52+0200 <info> configureContainer.js:16 (NodeRedManager.configureContainer) NodeRed: Docker container is being configured...
2023-06-29T18:09:52+0200 <info> configureContainer.js:28 (NodeRedManager.configureContainer) NodeRed: configuration file already exists.
2023-06-29T18:09:52+0200 <info> configureContainer.js:56 (NodeRedManager.configureContainer) NodeRed: Writting configuration...
2023-06-29T18:09:52+0200 <info> installContainer.js:74 (NodeRedManager.installContainer) NodeRed: container is (re)starting...
2023-06-29T18:09:59+0200 <info> installContainer.js:80 (NodeRedManager.installContainer) NodeRed: container successfully started
La raison:
pi@Nichoir2:~ $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0774902bc529 eclipse-mosquitto:2 "/docker-entrypoint.…" 23 minutes ago Up 22 minutes eclipse-mosquitto
319910e8396c nodered/node-red:latest "./entrypoint.sh" 23 minutes ago Restarting (0) 12 seconds ago gladys-node-red
0f828507d957 delogzway/gladys:nodered "docker-entrypoint.s…" 30 minutes ago Up 30 minutes gladys
29 Jun 16:18:50 - [error] Failed to start server:
29 Jun 16:18:50 - [error] Error: EACCES: permission denied, mkdir '/data/node_modules'
29 Jun 16:19:57 - [error] Failed to start server:
29 Jun 16:19:58 - [error] Error: EACCES: permission denied, mkdir '/data/node_modules'
29 Jun 16:21:06 - [error] Failed to start server:
29 Jun 16:21:06 - [error] Error: EACCES: permission denied, mkdir '/data/node_modules'
De plus, le lien proposé [localhost:1881] ne devrait-il pas être plutôt une adresse IP?
Enfin, quand on désactive le container via Gladys, celui-ci n’est pas détruit (contrairement à z2m)
@GBoulvin Merci pour ces retours, je regarde cela rapidement.
@GBoulvin je viens de faire une mise a jour de l’image docker. Dis moi si cela a réglé tes problèmes
Ah non, j’ai oublié ce sujet. Merci pour la relance. Je m’y colle ce soir!
Voilà, j’ai fait mes devoirs
Premier lancement, OK
Petite typo dans la phrase d’explication: Activez (plutôt que Activer, c’est plus cohérent) et il manque un point au bout.
Après clic sur Activer :
Sur les machines plus lentes, l’activation peut prendre jusqu’à cinq minutes (testé sur RPi2 ici). Peut-être serait-il intéressant de le préciser ?
Après quelques minutes donc, la page se rafraîchit mais les champs sont vides :
Petite typo : Il manque un accent à Désactiver
Après un refresh manuel :
Malheureusement, bien que le log de Gladys dise ceci (et le joli V vert) :
2023-08-19T10:39:25+0200 <info> installContainer.js:49 (NodeRedManager.installContainer) Nodered: Preparing environment...
2023-08-19T10:39:25+0200 <info> configureContainer.js:16 (NodeRedManager.configureContainer) NodeRed: Docker container is being configured...
2023-08-19T10:39:25+0200 <info> configureContainer.js:31 (NodeRedManager.configureContainer) NodeRed: Writing default configuration...
2023-08-19T10:39:25+0200 <info> installContainer.js:52 (NodeRedManager.installContainer) Creation of container...
2023-08-19T10:39:41+0200 <info> installContainer.js:57 (NodeRedManager.installContainer) NodeRed: successfully installed and configured as Docker container
2023-08-19T10:39:41+0200 <info> configureContainer.js:16 (NodeRedManager.configureContainer) NodeRed: Docker container is being configured...
2023-08-19T10:39:41+0200 <info> configureContainer.js:29 (NodeRedManager.configureContainer) NodeRed: configuration file already exists.
2023-08-19T10:39:41+0200 <info> installContainer.js:80 (NodeRedManager.installContainer) NodeRed: container is (re)starting...
2023-08-19T10:39:54+0200 <info> installContainer.js:86 (NodeRedManager.installContainer) NodeRed: container successfully started
Pas d’accès car le container redémarre en boucle :
19 Aug 08:44:02 - [error] Failed to start server:
19 Aug 08:44:02 - [error] Error: EACCES: permission denied, mkdir '/data/node_modules'
Quand on désactive le container, celui-ci est quitté (pas détruit) :
pi@Nichoir2:~ $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fbbcc3f1e7a nodered/node-red:latest "./entrypoint.sh" 17 minutes ago Exited (0) 8 seconds ago gladys-node-red
2231a7247078 delogzway/gladys:nodered "docker-entrypoint.s…" 24 minutes ago Up 24 minutes gladys
C’est presque bon !
Dernière chose :
Pour une raison d’uniformité, ça ne serait pas mieux de reprendre le bouton comme dans Z2M et MQTT ?
Merci du test @GBoulvin !
Pour le coup, le « toggle » dans ces intégrations est une erreur à mon avis, ça va changer dans les prochaines versions de Gladys donc pas la peine d’utiliser un toggle.
Le toggle est adapté à des actions « courtes » (genre allumé → éteint d’une lampe), mais pour une action de potentiellement 20 minutes, c’est horrible pour l’utilisateur car il pense qu’il peut faire « on/off » pour repartir de zéro, et en fait ça casse tout et l’utilisateur ne sait pas ce qui se passe en arrière plan ^^
Merci pour les retours @GBoulvin.
Je vais regarder pourquoi tu as cette erreur.
Je vais aussi corriger les typo un peu partout
@GBoulvin : J’ai trouvé le problème. Un truc tout con comme les droits du dossier sur la machine host
Je suis en train de faire une nouvelle image docker, elle sera prête dans une heure. Est ce que tu aurais la possibilité de re-tester chez toi ?
Testé et approuvé !
Simple et concis!
Une remarque/question :
Si on désactive le container dans l’intégration, celui-ci n’est pas supprimé mais arrêté. Après un redémarrage, le container node-red est à nouveau activé (même si alors inaccessible depuis l’intégration)
Pas sûr d’être très clair mais je voulais dire que si on désactive le container puis qu’on redémarre le pi, les deux containers sont relancés, même si l’intégration dans Gladys dit le contraire…
Une dernière chose mais je ne sais pas si tu sais faire quelque chose. C’est l’affichage sur mobile qui n’est pas génial au niveau du bouton d’activation/désactivation :
Superbe boulot en tout cas!
Merciiiiii
Je viens de le corrigé, je supprime maintenant le container après l’avoir stoppé
Je viens de le corriger aussi. Maintenant le bouton pas sur la deuxième ligne:
Merci beaucoup pour tes retours et tes tests
Je viens de sortir une nouvelle image docker avec les dernières modifications
@Lokkye Super boulot
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:
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
Bravo ! Je n’aurai bientôt plus d’excuse pour me lancer dans node-red (pour contrôler l’état de la voiture…) !
Voici le résultat avec le bouton déplacé
J’ai refait une image docker avec les changements
Merci pour les changements @Lokkye !
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
Voilà c’est tout pour moi, des petits détails d’UX mais qui à mon sens ont toute leur importance
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
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!)
C’est caché maintenant
Oui
C’est fait
Elle est basé sur « config.localApiUrl » plus le port qui est retourné par l’api
C’est fait
Tu as complètement raison
Comme dab, j’ai sortie une nouvelle image docker
Merci pour tous les changements
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 (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