Salut @elfedagger Si on me donne des modifications à faire sur le container Gladys Node-RED, je les ferais avec plaisir
j’ai hâte que mes volets solaire Somfy se ferme et s’ouvre automatiquement à nouveau, c’est vraiment un confort appréciable que me permet Gladys via Node red. Mais Ce que j’ai essayé de suivre sur ce qui à été fait sur ce problème dépasse de très loin mes compétences.
Tous est dans les mains de @Psoy Désolé de ne pas pas être de beaucoup d’aide sur ce sujet, je suis en 100% Zigbee chez moi.
Mais pour moi ça fonctionne, je veux juste tester en branchant ma clé zigbee et le Rflink pour voir comment réagit cette modification. Je ferai ça la semaine prochaine.
Mais déjà en branchant uniquement le Rflink ça fonctionne très bien. Je ferai un récapitulatif de la manipulation, par contre je ne sais pas intégrer ça,
dans l’image de Gladys.
Moi aussi tout Zigbee, mais pour Somfy j’ai pas le choix.
Hello @Psoy @elfedagger
je viens de trouver dans la doc z2m que l’on peut « attacher » le port d’un appareil usb externe au docker à un port usb interne au docker : Docker | Zigbee2MQTT
On voit qu’on map un device spécifique sur un port défini et qu’on donne des droits utilisateurs dessus.
Est-ce que par hasard vous pourriez tester ça à la place de mon script ?
A mon avis (pas testé encore), ça ne résoudra pas le fait de monter en automatique un device bien spécifique via Gladys qui lance un node-red interne mais si on utilise un docker dédié pour node-red alors ce sera possible pour tout le monde (moyennant de retrouver le chemin/nom exact du device sur le host).
Bonsoir ,
Alors j’ai testé avec ma clé Zigbbe, le node Serial se connecte bien et le zigbee fonctionne parfaitement. La contrainte qu’il y a , d’ailleurs comme sur le miniPc c’est que dès que l’on debranche la cle zigbee qui est sur le port USB0 et que l’on debranche le Rflink qui est lui sur le port USB1 (pour X raisons, disjoncteur qui saute (on ne debranche rien, mais ça donne ça)), puis que l’on rebranche le Rflink en premier, il lui sera attribué le port USB0 et pour la clé zigbee, elle se verra attribuée le port USB1,
Et là le zigbee ne fonctionnera plus tant que la cle zigbbe ne sera pas repassée sur le port USB0 et impossible de lui attribuer le port USB1 dans l’integration Gladys( je n’ai pas trouvé pourquoi). Par contre le Rflink lui fonctionnera le node serial sera connecté et enverra les messages reçus par la cle zigbbe (en charabia evidement) puisqu’il voit bien quelque chose sur son port du debut le port USB1.
La solution c’est de tout débrancher et de les rebrancher, si la cle zigbbee etait sur le port USB0, on la rebranche en premier et le Rflink en second qui sera sur le port USB1, comme à l’intilisation
Alors est ce que c’est vraiment un probleme? qui debranche ses ports USB ?
En regime établi , cette modif, pour rendre le node serial connecté , fonctionne bien. Pour Info, il suffit d’avoir une carte Mega 2560 et lui injecter le programme Rflink, pour pouvoir tester la connexion.
Voila ce que j’ai rentré en ssh, dans le Raspberry:
Toutes les commandes se font sur le host, pas dans le docker gladys.
il faut aussi que ton docker Gladys et Node-red soit en route.
Il faut créer un fichier nommé « 99-docker-tty.rules »
Dans le dossier /etc/udev/rules.d
il faut taper cette commande pour se rendre dans ce dossier
cd /etc/udev/rules.d
ensuite on crée et on edite le nouveau fichier : 99-docker-tty.rules
sudo nano 99-docker-tty.rules
on copier/coller dedans les instructions suivantes:
ACTION=="add", SUBSYSTEM=="tty", RUN+="/usr/local/bin/docker_tty.sh 'added' '%E{DEVNAME}' '%M' '%m'"
ACTION=="remove", SUBSYSTEM=="tty", RUN+="/usr/local/bin/docker_tty.sh 'removed' '%E{DEVNAME}' '%M' '%m'"
pour enregistrer le fichier on tape :
ctrl+X
puis tapez
Y
on taper la touche
Enter
pour sauvegarder et quitter.
Ensuite application des règles, on tape la commande ci-dessous
sudo udevadm control --reload
Enfin il faut créer le script qui va monter et démonter automatiquement le device sur le port usb :
Allez dans le dossier : /usr/local/bin
taper cette commande
cd /usr/local/bin
Puis créer un fichier nommé « docker_tty.sh »
sudo nano docker_tty.sh
On copie/colle :
#!/usr/bin/env bash
echo "Usb event: $1 $2 $3 $4" >> /tmp/docker_tty.log
if [ ! -z "$(docker ps -qf name=gladys-node-red)" ]
th en
if [ "$1" == "added" ]
then
chmod a+rw $2
docker exec -u 0 gladys-node-red mknod $2 c $3 $4
docker exec -u 0 gladys-node-red chmod -R 777 $2
echo "Adding $2 to docker" >> /tmp/docker_tty.log
else
docker exec -u 0 gladys-node-red rm $2
echo "Removing $2 from docker" >> /tmp/docker_tty.log
fi
fi
on quitte et on sauvegarde
ctrlX
puis tapez Y
et la touche Enter
Et pour finir on donne les droits d’exécution à ce script :
sudo chmod +x /usr/local/bin/docker_tty.sh
ATTENTION : ce script n’est pas validé par @pierre-gilles et si vous voulez tester n’utilisez pas votre machine qui fait tourner Gladys tous les jours
@mutmut merci pour le developpement de ce programme.
Si tu es d’accord @pierre-gilles, il faudrait automatiser ces commandes et les intergrer dans l’image de test de gladys node-red , que je pourrai retester eventuellement. Merci d’avance
Bonsoir @mutmut
je viens de regarder , ce que tu as envoyé , mais de ce que je vois c’est pour le port zigbee , et pour le port rflink il va falloir reprendre les instructions je pense et ça c’est un peu trop technique pour moi
Si tu as le temps, peux tu me guider, comme precedement , je testerai bien volontier