Mise à jour d'un compteur d'eau incrémental virtuel

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
baboun2807
Messages : 40
Inscription : 30 déc. 2015, 23:43

Re: Mise à jour d'un compteur d'eau incrémental virtuel

Message par baboun2807 »

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.

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&param=udevice&idx=225&nvalue=0&svalue='..waterdata_l
commandArray[1]={['UpdateDevice'] ='225|0|' ..waterdata_l}

return commandArray
Domoticz sur Raspberry Pi 2/ ECO DEVICE / compteur d'eau à impulsion / Plusieurs sondes Oregon / Chacon ON/OFF encastrable CH54555 ou CH54755
Répondre