permets également, comme le PHP (http://www.gce-electronics.com/forum/viewtopic.php?f=33&t=649) de dialoguer avec l'IPX800v3 en M2M.
Il faut savoir que le M2M est beaucoup plus rapide que les requĂŞtes http.
Si vous souhaitez faire quelques commandes sur l'IPX dans un temps court, le M2M s'impose alors. Incontournable.
voici le code Ă utiliser pour piloter un relais par exple :
- Code: Tout sélectionner
-- Utilisation de LUASocket
local socket = require("socket")
-- connexion a l'IPX
local address = "192.168.0.111" -- adresseIP de votre IPX
local port = 9870 -- par defaut le port de lIPX est 9870
client = assert(socket.connect(address, port))
if (client == "nil" or client == nil) then
luup.log("La connexion a échoué")
else
luup.log("Connexion OK")
end
-- Une fois connectee, envoie des commandes voulues
client:send("Set21") -- Relais 2 a 1
local answer = client:receive()
if (answer == nil or answer == "nil") then
luup.log("La réponse n°1 a échoué")
else
luup.log("La réponse n°1 est OK")
end
client:send("Set11") -- Relais 1 a 1
local answer1 = client:receive()
if (answer1 == nil or answer1 == "nil") then
luup.log("La réponse n°2 a échoué")
else
luup.log("La réponse n°2 est OK")
end
-- On ferme la connexion
client:close()
La même chose si vous voulez lire l'état d'un compteur de l'IPX
Exple pour le compteur 1 :
- Code: Tout sélectionner
-- Utilisation de LUASocket
local socket = require("socket")
-- connexion a l'IPX
local address = "192.168.0.111" -- adresseIP de votre IPX
local port = 9870 -- par defaut le port de lIPX est 9870
client = assert(socket.connect(address, port))
if (client == "nil" or client == nil) then
luup.log("La connexion a échoué")
else
luup.log("Connexion OK")
end
-- Une fois connectee, envoie la commande voulue
client:send("GetCount1")
local stringcount1 = client:receive()
-- On sapercoit que lIPX renvoie une chaine comprenant GetCount= au debut
luup.log("La chaine reçue du compteur 1 est : " .. stringcount1)
-- Donc on fait un string.sub pour ne lire que la valeur du compteur
local count1 = string.sub(stringcount1, 10)
luup.log("La valeur du compteur 1 est : " .. count1)
-- On ferme la connexion
client:close()
