Après de multiples essais j'obtiens un résultat sans erreur dans domoticz mais dans ma table phpmyadmin rien du tout.
Script LUA trigger Time
Code : Tout sélectionner
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local nom_script = "export mysql"
local version = "0.10"
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local url = "localhost/loggemulti.php"
local les_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 Puissance Lave Linge et Puissance Sèche Linge )
les_devices[#les_devices+1] = {device="Congélateur",nom="Congélateur",canal = "1"}
les_devices[#les_devices+1] = {device="B.O.F",nom="B.O.F",canal="1"}
les_devices[#les_devices+1] = {device="Viandes",nom="Viandes",canal="1"}
les_devices[#les_devices+1] = {device="Légumes",nom="Légumes",canal="1"}
les_devices[#les_devices+1] = {device="Mise en place",nom="Mise en place",canal="1"}
--les_devices[#les_devices+1] = {device="Tem extérieure"}
local feeds =""
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
function voir_les_logs (s, debugging) -- nécessite la variable local debugging
if (debugging) then
if s ~= nil then
print ("<font color='#f3031d'>".. s .."</font>")
else
print ("<font color='#f3031d'>aucune valeur affichable</font>")
end
end
end -- usage voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
--==============================================================================================
function sans_accent(str) -- supprime les accents de la chaîne str
if (str) then
str = string.gsub (str,"Ç", "C")
str = string.gsub (str,"ç", "c")
str = string.gsub (str,"[-èéêë']+", "e")
str = string.gsub (str,"[-ÈÉÊË']+", "E")
str = string.gsub (str,"[-àáâãäå']+", "a")
str = string.gsub (str,"[-@ÀÁÂÃÄÅ']+", "A")
str = string.gsub (str,"[-ìíîï']+", "i")
str = string.gsub (str,"[-ÌÍÎÏ']+", "I")
str = string.gsub (str,"[-ðòóôõö']+", "o")
str = string.gsub (str,"[-ÒÓÔÕÖ']+", "O")
str = string.gsub (str,"[-ùúûü']+", "u")
str = string.gsub (str,"[-ÙÚÛÜ']+", "U")
str = string.gsub (str,"[-ýÿ']+", "y")
str = string.gsub (str,"Ý", "Y")
end
return (str)
end
--==============================================================================================
function urlencode(str) -- encode la chaine str pour la passer dans une url
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w ])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end
--==============================================================================================
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 then -- export des données toutes les 2 minutes
--if ((time.min-1) % 15) == 0 then -- export des données toutes les 15 minutes
voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
for i,d in ipairs(les_devices) do
v=otherdevices[d.device]
c=tonumber(d.canal)
voir_les_logs("--- --- --- ".. sans_accent(d.device) .." = "..(v or "nil"),debugging)
print(sans_accent(d.device))
voir_les_logs("--- --- --- canal = "..(c or "nil"),debugging)
if v~= nil then v,nbCommas=string.gsub(v,";",";") end-- verification de la presence d'un ou plusieurs point virgule => valeurs multiples
if nbCommas >= 1 and c ~= nil then
voir_les_logs("--- --- --- valeurs multiples dans ".. sans_accent(d.device) .." = ".. v,debugging)
voir_les_logs("--- --- --- Nb de point virgule = "..(nbCommas or "nil"),debugging)
local valeurs = split(v,";")
voir_les_logs("--- --- --- valeur 1 = "..(valeurs[1] or "nil"),debugging)
voir_les_logs("--- --- --- valeur 2 = "..(valeurs[2] or "nil"),debugging)
voir_les_logs("--- --- --- valeur 3 = "..(valeurs[3] or "nil"),debugging)
voir_les_logs("--- --- --- valeur 4 = "..(valeurs[4] or "nil"),debugging)
feeds = feeds .. '&f'.. i .. '=' .. urlencode(d.nom) .. '&v' .. i .. '=' .. valeurs[c]
elseif d.nom ~= nil then
feeds = feeds .. '&f'.. i.. '=' .. urlencode(d.nom) .. '&v' .. i .. '=' .. v
else
feeds = feeds .. '&f'.. i.. '=' .. urlencode(d.device) .. '&v' .. i .. '=' .. v
end
I = i
end
feeds = string.gsub (feeds, ".000", "")
url = url .. "?feeds=" .. I
voir_les_logs("--- --- ---Envoi valeurs dans la base de données",debugging)
voir_les_logs("curl -m5 " .. "'".. url .. feeds .."'",debugging)
voir_les_logs("--- --- ---i a une valeur de : "..I,debugging)
os.execute("curl -m5 " .. "'".. url .. feeds .."'")
voir_les_logs("========= Fin ".. nom_script .." (v".. version ..") =========",debugging)
end -- if time
-- ============================================================================
return commandArray2022-12-27 08:45:00.290 Status: LUA: <font color='#f3031d'>=========== export mysql (v0.10) ===========</font>
2022-12-27 08:45:00.290 Status: LUA: <font color='#f3031d'>--- --- --- Congelateur = -14.50</font>
2022-12-27 08:45:00.290 Status: LUA: Congelateur
2022-12-27 08:45:00.290 Status: LUA: <font color='#f3031d'>--- --- --- canal = 1</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- B.O.F = 7.25</font>
2022-12-27 08:45:00.291 Status: LUA: B.O.F
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- canal = 1</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- Viandes = 15.75</font>
2022-12-27 08:45:00.291 Status: LUA: Viandes
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- canal = 1</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- Legumes = 15.75</font>
2022-12-27 08:45:00.291 Status: LUA: Legumes
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- canal = 1</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- Mise en place = 15.25</font>
2022-12-27 08:45:00.291 Status: LUA: Mise en place
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- --- canal = 1</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- ---Envoi valeurs dans la base de données</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>curl -m5 'localhost/loggemulti.php?feeds=5&f1=Cong%C3%A9lateur&v1=-14.50&f2=B%2EO%2EF&v2=7.25&f3=Viandes&v3=15.75&f4=L%C3%A9gumes&v4=15.75&f5=Mise+en+place&v5=15.25'</font>
2022-12-27 08:45:00.291 Status: LUA: <font color='#f3031d'>--- --- ---i a une valeur de : 5</font>
2022-12-27 08:45:00.316 Status: LUA: <font color='#f3031d'>========= Fin export mysql (v0.10) =========</font>