Aller au contenu

Premier Post Et Demande D'aide Script Lua


Maxdunhill

Messages recommandés

Bonjour,

 

je suis intégrateur domotique et j'interviens sur de nombreuse box et la HC2 est une des box que je propose fréquemment...

 

Voici mon cas d'école, le modo peux changer le sujet dans la section la plus pertinente.

 

je souhaite envoyer des commande tcp sur une interface eNet Gira ou Jung pour ne pas les citer ;)

donc après un gros travail de reverse ing, je connais les commandes et le port utilisé, soit 9050

j'ai déjà  envoyé les commande par putty en raw, elles sont accepter et exécuter par le controleur, par contre dans un module virtuel avec le script ci-dessous pas de réponse et pas d’interprétation du contrôleur eNet...

 

code lua dans le bouton On du périphérique virtuel:

tcpSocket = Net.FTcpSocket("192.168.1.30", 9050);
tcpSocket:setReadTimeout(2000);

local commande ='{\"PROTOCOL\":\"1.8\",\"TIMESTAMP\":\"1448636693\",\"CMD\":\"VERSION_REQ\"}\r\n\r\n';

fibaro:debug(commande);

tcpSocket:write(commande);

-- state = str(tcpSocket.recv(1024),'test');
state = tcpSocket:read();

fibaro:debug("len: " .. string.len(tostring(state)));
fibaro:debug(state);
 
Dans le debug la commande est exactement la même que celle utiliser dans putty en raw...
 
Merci pour vos réponses et votre aide.
Philippe
Lien vers le commentaire
Partager sur d’autres sites

local login = "admin"
local password = "pwd"


-- System variables
local selfID = fibaro:getSelfId()
local ip = fibaro:get(selfID, 'IPAddress')
local port = fibaro:get(selfID, 'TCPPort')
local Synology = Net.FHttp(ip, tonumber(port))

 

payload = "/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth"
response, status, errorCode = Synology:GET(payload)

voici un exemple j'utilise cela pour un syno, ip et port sont récuperer dans le vd

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse
 
je pense que ton exemple est pour une requête vers une API en http... malheureusement je dois communiquer avec la passerelle eNet en TCP... cf cela fonction en Raw putty.
Mais je me demande si en utilisant la commande Net.FTcpSocket il ne faut pas accepter le socket de l'autre coté alors que putty en raw il ne demande pas d'autorisation...
 
P.S tu fait comment pour mettre ton code comme dans l'interface HC2?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour et bienvenue sur le forum.

Afin de bien utiliser le forum, merci de prendre quelques minutes pour lire :

Les règles du forum

Utilisation de la fonction "Citation"

Bonne lecture et bon surf sur Domotique-Fibaro.fr ;)

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...