bonjour a tous ,
comment fait on pour envoyer une commande UDP simple ?
je voudrais envoyer une commande UDP pour effectuer l’ouverture de mon Portail électrique .
Bonjour.
Certainement avec le plugin script.
Hello,
Pour envoyer le message ouvre la porte sur le port udp 4578 à l’adresse IP 192.169.12.45:
echo 'ouvre la porte' > /dev/udp/192.168.12.45/4578
Commande à lancer depuis une session bash
Bonsoir, peut on le faire dans le plugin script de Jeedom?
Bonsoir.
Oui, je vous l’ai indiqué en 1ere réponse.
Installez le, lisez sa documentation et hop.
Bonjour, c’est aussi simple? Ben j’ai pas tout compris
Bonjour,
Ce que vous pouvez faire en SSH, vous pouvez donc le mettre dans un fichier bash (monscript.sh)
Et vous pouvez l’exécuter avec le plugin Script.
En image, l’exécution de d’un script SH avec le plugin Script :
Je vous invite à re lire la documentation, elle est explicite sur ce sujet.
bonjour , la commande ne fonctionne pas en ssh!
J’ai bien entré le bon message, la bonne iP et le bon port.
On peut difficilement aider avec juste l’info « ça marche pas ».
Une copie d’écran avec la commande et les éventuelles messages serait la bienvenue…
Il y a peut-être un problème de droits.
Vu que je ne connais pas le plugin Script, peux-tu ajouter les lignes suivante avant le echo ... dans ton script?
/usr/bin/ls /var/www/html/plugins/script/data/portail.sh > /tmp/portail.txt
/usr/bin/id >> /tmp/portail.txt
Ensuite, tu pourras relancer la commande via le plugin script. Tu pourras ensuite poster le contenu du fichier /tmp/portail.txt
Tu pourras alors retirer les deux lignes ajoutées et supprimer le fichier /tmp/portail.txt
Bonjour, au départ j’avais un problème de droit donc j’ai fait un chmod 777 portail.sh
J’essaie ta méthode ce soir.
Bonjour, je n’ai aucun fichier « portail.txt » « Tmp » ?
À quoi sert ces deux lignes?
Hello,
As-tu bien regardé dans le répertoire /tmp et non pas Tmp.
Ces deux commande devaient permettre de voir
- quelles sont les droits et propriétaires du script
- quel compte linux est utilisé pour lancer la commande
Mais je viens de voir que j’ai oublié
l’option -l sur la première qui doit être:
/usr/bin/ls -l /var/www/html/plugins/script/data/portail.sh > /tmp/portail.txt
Si le fichier /tmp/protail.txtn’est pas créé, il y a fort à parier que le script n’a pas pu être exécuté. Reste à savoir pourquoi.
Comme déjà dit, je ne connais pas le plugin script peut-être que quelqu’un qui l’utilise et nous lit pourra nous aider de ce côté.
En attendant, peux-tu te loguer en ssh et donner le résultat de la commande
/usr/bin/ls -l /var/www/html/plugins/script/data/portail.sh
C’est malheureusement une exécution qui a eu lieu sans l’option -l. C’est pas grave, le script a bien été lancé par le plugin. On sait donc que le plugin a les droits nécessaires pour lancer la commande.
Peux-tu voir ce que se passe si tu lance la commande suivante depuis une session ssh:
sudo -u www-data /var/www/html/plugins/script/data/portail.sh
Si rien ne se passe sur ton portail, essaie ceci
echo 'portail 1' > /dev/udp/xxx.xxx.xxx.xxx/yyy
Si rien ne se passe, on fera un autre test pour vérifier que les trames UDP sont bien envoyées.
salut, j’ai essayé les deux commandes mais rien ne se passe.
Nous allons donc vérifier l’envoi des messages UPD.
L’idéal serait d’avoir deux machines Linux mais on peut le faire avec une seule.
- Si tu as deux serveurs, ouvre une session ssh sur chacun des serveurs sinon, ouvre deux sessions ssh sur ton serveur jeedom.
- Si tu as deux serveurs, lance la commande suivante sur le serveur non jeedom, sinon, fait le sur une de tes deux sessions ouvertes sur jeedom:
nc -u -l -p3456 - Dans l’autre session sur le serveur jeedom, lance la commande suicante:
echo "portail 1" > /dev/udp/<ip>/3456replace par l’adresse ip de la machine sur laquel tourne ton autre session ssh
Si tout va bien le texte portail 1 doit s’afficher dans la session sur laquelle tourne la commande nc ...
bonsoir , cela fonctionne bien
bonsoir , j’ai peut être oublié de préciser que la commande UDP n’est pas sur mon réseau local



