LUA, utilisez sur la Box Vera
permets également (comme le PHP) de dialoguer avec l’IPX800v3 en M2M :
voici le code à utiliser pour piloter un relais par exple :
-- Utilisation de LUASocket
local socket = require("socket")
-- connexion a l'IPX
local address = "192.168.0.111"
local port = 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")
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")
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 :
-- 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()