Suite à la mise à jour de Raspberry OS vers Debian Trixie, libgpiod v2 devient la librairie par défaut et grace au projet opengpio, j’ai migré l’intégration node-red que j’avais basé sur pigpiod sur ces nouvelles librairies qui me paraisse plus appropriées pour un usage en locale.
Il n’est pas encore prévus de déployer la module sur npm, j’ai des soucis avec la gestion de la traduction. Cependant si cela peut simplifier la gestion des relais et entrées sans se préoccuper de la numérotation GPIO pour certains, l’intégration est dispo ici
=> node.status({fill:out ? ‹ green › : ‹ grey ›, shape:dot,text:relayStatusMapping[out]});
pour ceux qui préfère en rouge comme moi
=> node.status({fill:out ? ‹ red › : ‹ grey ›, shape:dot,text:relayStatusMapping[out]});
Coté upgrade vers Trixie j’ai pas eu de soucis particulier contrairement à un autre système où c’est plus la galère. Mais du coup tu as eu à installer libgpiod manuellement ou il était de base (j’avais déjà installé la version 2 avant l’upgrade) ?
Coté cosmétique j’ai pas trop d’avis tranché sur les couleurs à définir pour chaque états, rouge ça me paraissait “alarmiste” pour un contact ouvert. J’hésite aussi entre gris un jaune comme pour une lampe. Mais c’est assez facile à rendre paramétrable, je peux me pencher dessus.
c’est juste les validations, ca bloque et on oublie de défiler pour valider les Yes pour continuer donc la première fois bah j’ai rebooté direct !
déjà installé
Par contre, j’ai adapté pour cette arborescence plus standard mais comme toi j’ai buté sur l’internationalisation (pas beaucoup de doc, je pense qu’il faut investiguer sur les nodes standard intégrés puisqu’ils sont en français)
L’internationalisation je ne suis pas du tout au clair sur son fonctionnement, mais c’est un sujet que je souhaite creuser. Je vais comparer avec d’autres custom node pour comprendre l’intégration.
Pour l’arborescence, c’est en effet préférable de faire comme cela. Simplement en cour de développement c’est plus pratique/rapide de faire un npm link et d’utiliser la librairie dans le répertoire courant. Si j’atteins un niveau de maturité acceptable, je regarderai comment la publier sur npm pour qu’elle soit directement installable dans node-red. Auquel cas l’arborescence ne sera plus à gérer.
j’ai commencé à regarder et je me demande si le nom du package avec - ou _ pose pas problème, un bon exemple ici pour la structure et l’implémentation :
ca concerne la gestion des fichiers au niveau du core
En revanche pour le nom des nœuds à afficher j’ai dû trouver un subterfuge pour afficher NRX-800 en utilisant un autre caractère unicode: NRX\u2011800 Input.
tu peux simplifier en ne prenant en entrée pour le node relay que true ou false
idée d’amélioration : ajouter la possibilité de prendre en entrée payload d’un node relay une chaine binaire « 01010101 » qui basculerai les relais correspondant au masque binaire ici le 2,4,6,8
La possibilité de spécifier les relais en entrée c’est clairement une fonctionnalité que j’ai en tête, elle est présente dans la version utilisant pigpio. En revanche elle soulève quelques défis car il y a un délai entre l’instanciation d’une GPIO et la possibilité de définir son état. Une solution pourrait être d’instancier toutes les GPIO des relais au déploiement mais ça implique un usage des relais exclusif à node-red, si un besoin ou un cas d’usage se présente pas de soucis pour ajouter ça.
En amélioration il y a aussi la gestion de plusieurs même nœuds, actuellement cela ne fonctionne pas bien, cependant, je suis perplexe sur le cas d’usage.
c’est juste pour simplifier le flow, par exemple pour une alarme avec un trigger on peut faire flasher directement les relais si ils sont associés à des lampes, si on entre en mode alarme armée on met tous les relais à 0 pour éteindre les lumières ou les 7 1ers à 0 et le dernier à 1 si il alimente une caméra et inversement si on quitte le mode alarme (associé à un capteur luminosité ou un node weather qui indique la luminosité)
Pareil pour les entrées, on peut avoir une possibilité d’entrer un binaire (11110000) qui renvoie true si au moins une des 4 premières entrées associées à des capteur d’ouverture est à 1 etc
Bref la fonction créé le besoin et lycée de Versailles
Bon au moins ce dev ouvres la boite de pandore sur de futurs développements à qui veut participer donc !