Envoie commande "telnet" via le plugin script

Tags: #<Tag:0x00007f384e68fa00>

Bonjour,
Je voudrais envoyer une commande power « on » (ou power « off » et pourquoi pas également power_status ?) à mon vidéoprojecteur en « telnet » mais je ne m’en sors pas :frowning:
Peu m’importe la méthode, python, php…
J’y arrive parfaitement en telnet en ligne de commande depuis la machine jeedom.

J’ai essayé de jeter un coup d’œil au github de @Flobul qui m’avait gentiment envoyé un message mais résultat toujours KO :frowning:
Impossible également depuis le plugin telnet de @Sh0n

Quelqu’un aurait-il l’extrême gentillesse de me donner quelques lignes de codes que je pourrais utiliser via le plugin script ?

Bonjour,
Si tu sais le faire en ligne de commande, tu peux créer un script bash (sh) contenant les commandes voulues qu’ensuite tu pourras exécuter depuis le plug-in script.

Test d’abord ton script manuellement et s’il fonctionne comme voulu passe à l’intégration avec jeedom ensuite.

1 J'aime

Hello.
J’ai un plugin en cours pour Optoma pilotable par telnet.

Je pense sortir la beta pour la fin de semaine.

Probablement un problème de droits. Il faut que ce soit www-data qui ait les droits d’exécution pour que cela fonctionne lorsque c’est lancé par Jeedom.

Comme indiqué plus haut, le mieux c’est sûrement le script sh avec le plugin Script, et en le créant depuis le plugin pour être sûr que les droits sont bons. Ce sera quelque chose comme ça :

#/bin/bash
telnet xxx

@Mips : Je vais tester ça. J’ai des mauvais souvenirs en DOS de l’appli Telnet qui n’était pas scriptable.

@Flobul : Ca pourrait être interessant pour les videoprojecteurs Sony également il suffirait de reprendre le plugin en changeant les commandes. Ton Optoma n’est pas compatible avec le nouveau plugin PJ Link ?

@seb821 : je vais regarder si je peux donner les droits sur le dossier. Je ne connais pas la bonne syntaxe « chmod » mais je vais chercher.

Les commandes pjlink sont limitées comparées à celles en telnet.
Pas stable sur mon optoma.

Oui, probablement pour Sony. Je regarde la prog Sony.
Je pense pouvoir l’adapter. Donne la syntaxe exacte de ta commande power on que tu entres dans telnet. (power on tout simplement) sur le port 53595 ?

J’ai eu un souci il y a peu avec un équipement à distance.
J’ai réussi à relancer un processus par telnet grâce à jeedom et cette methode

Dans Réglages \ Configuration \ _OS/DB \ _Administration Système
apt install expect

Dans un équipement script, une commande de type action et type script:
expect "/var/www/html/montheme/scripts/telnet.expect" >/dev/null 2>&1

Contenu de telnet.expect:

spawn telnet Ton_@IP
expect "ogin:"
send "Ton_login\n"
expect "assword:"
send "Ton_mot_de_passe\n"
expect "] "
send "Ta commande telnet1\n"
expect "] "
send "Ta commande telnet2\n"
expect "] "
send "Ta commande telnet3\n"
expect "] "
...
send "exit\n"
expect eof

Merci à tous, c’est pas hyper beau (même pas un script unique avec un passage d’argument) mais c’est fonctionnel.
J’ai créé un objet script avec deux commandes on et off avec le code suivant :

#/bin/bash
telnet 192.168.0.43 53595 << EOF
power "on"
EOF

et le même avec « off »

Reste à comprendre pourquoi je ne réussi pas à insérer ces commandes dans un scénario :frowning:
Je vais devoir passer par un virtuel.
EDIT : non, soucis sur ma box je ne peux plus mettre aucune action dans mon scénario :frowning:

@Flobul : Oui juste une connexion telnet sur le port 53595 et l’envoie de la commande power « on » ou key "power_on"
J’ai mis la doc avec toutes les commandes dans le sujet « plugin pjlink »

EDIT : la commande fonctionne mais génère une erreur : :frowning:
Erreur exécution de la commande [Salon][VP_Telnet][On] : Erreur sur /var/www/html/plugins/script/data/VP_On 2>&1 valeur retournée : 1. Détails : Trying 192.168.0.43… Connected to 192.168.0.43. Escape character is ‹ ^] ›. Connection closed by foreign host.

@vincent60
Ca ne fonctionne pas.

Mon script :

#!/usr/bin/bash
spawn telnet 192.168.0.43 53595
expect "OKEY"
send 'power "on"\n'
expect eof

Le Log :
[2020-10-04 15:48:02][ERROR] : Erreur exécution de la commande [Base][Videoprojecteur][expect ] : Erreur sur /var/www/html/plugins/script/data/telnet.expect 2>&1 valeur retournée : 1. Détails : /var/www/html/plugins/script/data/telnet.expect: line 2: spawn: command not found couldn't read file "OKEY": no such file or directory /var/www/html/plugins/script/data/telnet.expect: line 4: send: command not found couldn't read file "eof": no such file or directory

Bonjour,

Avez-vous trouvé une solution? j’ai le même message d’erreur que vous.

Cdt

Bonjour à tous,

Alors voilà j’avance sur mon besoin d’envoyer des commandes par Telnet à une console lumière : GrandMA2 OnPc.

Vu que le plugin de Sh0n ne semble pas fonctionner, enfin pour moi et que je n’ai pas de retour de lui pour le moment, je me donc dit de passer par un script.
Après quelques recherche, j’ai donc créé un script avec 2 actions « on et off » soit :

/var/www/html/plugins/script/data/on.sh
/var/www/html/plugins/script/data/off.sh

Et dans l’édition de on.sh j’ai écrit :

#!/bin/bash
{
sleep 0.1
echo login administrator admin
sleep 0.1
echo Go executor 1.201
sleep 0.1
echo exit
} |telnet 192.168.1.2 30000

Et super cela fonctionne!!
Mais malheureusement, avec un petit bémol :
J’ai une valeur retournée comme celle ci :
valeur-retour_telnet

Et là et bien je bloque, d’après ce que je comprends c’est peut-être un problème de caractères informatique.
J’ai trouvé sur le forum une discution qui parle de « valeur retourné : 1 » Mais cela n’arrange pas mon problème:

https://community.jeedom.com/t/erreur-dans-lexecution-du-terminal-la-valeur-retournee-est-1-details/22516

Toutes les *, : , M et A qui se suivent, viennent du logiciel GrandMA2 car lorsque je me connecte en ssh à ce logiciel j’obtiens :

logo MA

Du coup, je cherche un bout de code pour éviter ce retour. Je lis des doc sur les script, des forums sur la programmation, mais là je perds mon temps, je n’y arrive pas, donc peut-être que quelqu’un aura la connaissance informatique pour m’aider…

Cdt

MnX

Ajoute echo 1 tout à la fin de ton script.

Bonjour Samuel14,

Excellent, merci beaucoup!!!

Toujours pas de nouvelle de @Sh0n et de son plugin Telnet, bien dommage…

Mnx