Code : Tout sélectionner
--[[script_time_export_IPX800.lua
auteur : papoo
maj : 03/03/2019
date : 03/03/2019
https://easydomoticz.com/forum/viewtopic.php?f=8&t=8120
--]]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local script_actif = true -- true pour activer l'execution du script ou false pour le désactiver
local ip_IPX800 = '192.168.1.20'
local port_IPX800 = '80'
local mdp_IPX800 = 'mot2passe'
local api_IPX800 = '/api/xdevices.json?key='
local multiplicateur = 10
local les_devices = {}; -- pas plus de 11 devices
-- si vous souhaitez remonter les valeurs d'un device qui en comporte plusieurs (ex: température et hygrometrie extérieure)
--renseigner le nom de la valeur à remonter (à partir de la deuxieme valeur) ainsi que le numero d'ordre dans canal (voir exemples ci dessous les_devices[9] et les_devices[21] )
-- les_devices[#les_devices+1] = {device="Temperature 1", VA_IPX="01", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 2", VA_IPX="02", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 3", VA_IPX="03", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 4", VA_IPX="04", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 5", VA_IPX="05", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 6", VA_IPX="06", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 7", VA_IPX="07", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature exterieure", VA_IPX="08", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature exterieure", VA_IPX="09", multiplicateur = 1, canal=2}
les_devices[#les_devices+1] = {device="Temperature Salon", VA_IPX="10", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Point de givrage", VA_IPX="11", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Point de rosée", VA_IPX="12", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature Refrigerateur", VA_IPX="13", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature Congelateur", VA_IPX="14", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature départ chauffage", VA_IPX="15", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature retour chauffage", VA_IPX="16", multiplicateur = 10, canal=""}
les_devices[#les_devices+1] = {device="Temperature Parents", VA_IPX="17", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 18", VA_IPX="18", multiplicateur = 1, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 19", VA_IPX="19", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 20", VA_IPX="20", multiplicateur = 10, canal=""}
-- les_devices[#les_devices+1] = {device="Temperature 21", VA_IPX="21", multiplicateur = 10, canal=2}
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = "export IPX800"
local version = "0.01"
--------------------------------------------
---------------- Fonctions -----------------
------------------------------------------
package.path = package.path..";/home/pi/domoticz/scripts/lua/fonctions/?.lua" -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script
require('fonctions_perso') -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script
-- ci-dessous les lignes à décommenter en cas d'utilisation des fonctions directement dans ce script( supprimer --[[ et --]])
--[[ function voir_les_logs (s, debugging) -- nécessite la variable local debugging
if (debugging) then
if s ~= nil then
print (s)
else
print ("aucune valeur affichable")
end
end
end -- usage voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
--------------------------------------------
function split(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
return t
end -- usage : valeurs = split(variable,";")
--]]
--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
commandArray = {}
time=os.date("*t")
--if ((time.min-1) % 2) == 0 and script_actif == true then -- export des données toutes les 2 minutes
if time.min % 1 == 0 then
voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
voir_les_logs("--- --- --- Export vers IPX800 : "..time.hour.. ":" ..time.min,debugging)
local API_key = uservariables[api_IPX800]
for i,d in ipairs(les_devices) do
v=otherdevices[d.device]
va= d.VA_IPX
multi = tonumber(d.multiplicateur)
c=tonumber(d.canal)
voir_les_logs("--- --- --- ".. d.device .." = "..tostring(v),debugging)
voir_les_logs("--- --- --- canal = "..tostring(c),debugging)
if v~= nil then v,nbCommas=string.gsub(v,";",";") end-- vérification de la présence d'un ou plusieurs point virgule => valeurs multiples
if nbCommas >= 1 then
voir_les_logs("--- --- --- valeurs multiples dans ".. d.device .." = ".. v,debugging)
voir_les_logs("--- --- --- Nb de point virgule = "..(nbCommas or "nil"),debugging)
local valeurs = split(v,";")
voir_les_logs("--- --- --- valeur 1 = "..tostring(valeurs[1]),debugging)
voir_les_logs("--- --- --- valeur 2 = "..tostring(valeurs[2]),debugging)
voir_les_logs("--- --- --- valeur 3 = "..tostring(valeurs[3]),debugging)
voir_les_logs("--- --- --- valeur 4 = "..tostring(valeurs[4]),debugging)
if c == nil then c = 1 end
valeur = tonumber(valeurs[c]) * multi
elseif v ~= nil and multi ~= nil then
voir_les_logs("--- --- --- valeur V = "..tostring(v),debugging)
valeur = tonumber(v) * multi
end
voir_les_logs("--- --- --- ".. ip_IPX800 ..':'.. port_IPX800 .. api_IPX800 .. mdp_IPX800 .. "&SetVA" .. va .. "=" .. tostring(valeur) ,debugging)
os.execute('curl -m5 "'.. ip_IPX800 ..':'.. port_IPX800 .. api_IPX800 .. mdp_IPX800 .. "&SetVA" .. va .. "=" .. tostring(valeur) .. '"')
voir_les_logs('curl -m5 "'.. ip_IPX800 ..':'.. port_IPX800 .. api_IPX800 .. mdp_IPX800 .. "&SetVA" .. va .. "=" .. tostring(valeur) ..'"',debugging)
valeur = nil
end
voir_les_logs("=========== Fin ".. nom_script .." (v".. version ..") =========",debugging)
end -- if time
--------------------------------------------====
return commandArray