Re: Mise à jour d'un compteur d'eau incrémental virtuel
Publié : 20 janv. 2017, 22:17
Bonsoir
Je te mets le script. Il fonctionne mais il faut que j'enlève des choses qui sont pas nécessaires dedans.
Je récupère la valeur consommation en L et j'alimente un custom sensor; il faudrait que j'essaye d'alimenter un compteur incrémental mais par manque de temps je ne l'ai pas encore fait.
Je te mets le script. Il fonctionne mais il faut que j'enlève des choses qui sont pas nécessaires dedans.
Je récupère la valeur consommation en L et j'alimente un custom sensor; il faudrait que j'essaye d'alimenter un compteur incrémental mais par manque de temps je ne l'ai pas encore fait.
Code : Tout sélectionner
-- this script reads the ecodevice xml file and uploads current data to virtual device
-- get type of variable
function typeof(var)
local _type = type(var);
if(_type ~= "table" and _type ~= "userdata") then
return _type;
end
local _meta = getmetatable(var);
if(_meta ~= nil and _meta._NAME ~= nil) then
return _meta._NAME;
else
return _type;
end
end
-- Initialisation des variables locales
commandArray = {}
--IDX du Compteur EAU dans Domoticz
local idx = 190 -- idx du compteur d'eau incrémental virtuel dans domoticz
-- IP EcoDevice :
os.execute('wget http://192.168.1.30:80/status.xml -O /home/pi/domoticz/scripts/lua/water.xml')
local filename = "/home/pi/domoticz/scripts/lua/water.xml"
local line = ''
local waterdata_l =0
local waterdata_m3 =0
-- Récupération des valeurs de l'EcoDevice contenues dans le fichier XML
for line in io.lines(filename) do
if string.find(line,"<c0day>") then
waterdata_l=line
waterdata_l=string.sub(waterdata_l, 8, -10)
end
if string.find(line,"<count0>") then
waterdata_m3=line
end
end
-- print('[ECODEVICE] -- COMPTEUR EAU --')
-- print("Compteur eau a impulsion: " .. waterdata_l .. " L consommé(s) aujourd'hui." )
-- print("Index eau a impulsion: " .. waterdata_m3 .. " m3 consommé(s)depuis la pose du compteur." )
-- Mise à jour du custom sensor
string.format("%d", waterdata_l)
string.format("%.3f", waterdata_l)
commandArray['OpenUrl']= 'http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx=225&nvalue=0&svalue='..waterdata_l
commandArray[1]={['UpdateDevice'] ='225|0|' ..waterdata_l}
return commandArray