Ça fonctionne bien.
J'ai juste "merdé" durant les essais ce qui fait sur l'histogramme, j'ai pour le lundi 647kW h générée à la place de 0.4 et je n'arrive pas à le remettre à la bonne valeur...
sinon le code :
Code : Tout sélectionner
--[[
name : script_time_Altenergy_u_t_P.lua
auteur : papoo
date : 26/08/2018
Principe :
26/08/2018
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local nom_script = "Altenergy_u_t_P"
local debugging = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local script_actif = false -- active (true) ou désactive (false) ce script simplement
local delai = 5 -- délai d'exécution de ce script en minutes de 1 à 59
local CapteurVirtuel_puissance = 722
local CapteurVirtuel_temp = 756
local CapteurVirtuel_tension = 757
local adresse1 = "http://192.168.0.6/index.php/home"
local adresse2 = "http://192.168.0.6/index.php/realtimedata"
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'Altenergy_u_t_p'
local version = '1'
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
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)
--------------------------------------------
-------------- Fin Fonctions ---------------
--------------------------------------------
commandArray = {}
time = os.date("*t")
if script_actif == true then
--if (time.hour == 00 and time.min == 20) then -- tout les matins à 00h20
--if (time.min == 20 and ((time.hour == 7) or (time.hour == 13) or (time.hour == 18))) then -- 3 exécutions du script par jour à 7H20, 13h20 et 18H20
--if time.hour % 2 == 0 then -- toutes les deux heures
--if (time.hour%1 == 0 and time.min == 10) then -- Toutes les heures et 10 minutes
--if time.min% 2 == 0 then
if ((time.min-1) % delai) == 0 then -- toutes les xx minutes en commençant par xx:01. xx définissable via la variable delai
voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
if adresse1 ~= '' then voir_les_logs('--- --- --- Adresse : '..adresse1..' --- --- --',debugging) end
local rid = assert(io.popen("/usr/bin/curl -m5 ".. adresse1))
local testhtml = rid:read('*all')
rid:close()
for instance in testhtml:gmatch("<body>(.-)</body>") do
div, EnergieTotale=instance:match('Lifetime generation(.-)<td>(.-)kWh </td>')
div1, Puissance=instance:match('Last System Power(.-)<td>(.-)W </td>')
div2, EnergieJour=instance:match('Generation of Current Day(.-)<td>(.-)kWh </td>')
end
if EnergieTotale ~= nil then
voir_les_logs("--- --- --- Puissance Generee totale: ".. EnergieTotale.."kWh --- --- --",debugging)
else
voir_les_logs('--- --- --- Puissance Generee totale est vide --- --- --',debugging)
end
if Puissance ~= nil then
voir_les_logs("--- --- --- Puissance : ".. Puissance.."W --- --- --",debugging)
else
voir_les_logs('--- --- --- Puissance est vide --- --- --',debugging)
end
if EnergieJour ~= nil then
voir_les_logs("--- --- --- EnergieJour : ".. EnergieJour.."kW --- --- --",debugging)
else
voir_les_logs('--- --- --- EnergieJour est vide --- --- --',debugging)
end
if adresse2 ~= '' then voir_les_logs('--- --- --- Adresse : '..adresse2..' --- --- --',debugging) end
local rid = assert(io.popen("/usr/bin/curl -m5 ".. adresse2))
local testhtml = rid:read('*all')
rid:close()
for instance in testhtml:gmatch("<tbody>(.-)</tbody>") do
tensionOnduleur=instance:match("404000251589%-A </td>.-Hz.-<td>(.-) V </td>")
tempOnduleur=instance:match("404000251589%-A </td>.-middle;'%>.-Hz </td>.-middle;'%>(.-) °C </td>")
end
if tensionOnduleur ~= nil then
voir_les_logs("--- --- --- Tension reseau : ".. tensionOnduleur.." V--- --- --",debugging)
else
voir_les_logs('--- --- --- tension reseau est vide --- --- --',debugging)
end
if tempOnduleur ~= nil then
voir_les_logs("--- --- --- Temperature onduleur : ".. tempOnduleur.." degre --- --- --",debugging)
else
voir_les_logs('--- --- --- Temperature onduleur --- --- --',debugging)
end
EnergieJour=EnergieJour*1000 --en W pas kW
local CmdIdx=1
commandArray[CmdIdx] = {['UpdateDevice'] = CapteurVirtuel_temp.."|0|"..tempOnduleur}
CmdIdx=CmdIdx+1
commandArray[CmdIdx] = {['UpdateDevice'] = CapteurVirtuel_tension.."|0|"..tensionOnduleur}
CmdIdx=CmdIdx+1
commandArray[CmdIdx] = {['UpdateDevice'] = CapteurVirtuel_puissance.."|0|"..Puissance..";"..EnergieJour}
CmdIdx=CmdIdx+1
voir_les_logs("--- --- --- Puissance Generee totale: ".. EnergieTotale.."kWh --- --- --",debugging)
voir_les_logs("========= Fin ".. nom_script .." (v".. version ..") =========",debugging)
end -- if time
end
return commandArray