Depuis plusieurs mois je intéresse à DOMOTICZ, j'ai avancé et appris pas mal de choses. Mais compétences sont encore trop limitées.
Je recherche une âme charitable qui pourrait m'aider sur un problème que je trouvais relativement simple mais pour lequel je n'arrive pas à m'en sortir.
Voila, j'ai installer un compter gaz, sur ce compteur il un y a contact sec qui en envoie des impulsions tous les 0.010m", j'ai raccordé ce contact sec sur l'entrée d'un module FIBARO System FGBS001 Universal Binary Sensor qui envoie bien les impulsions à DOMOTICZ, j'ai le suivi dans les logs.
J'ai crée un compteur incrémental qui est lié au contact du compteur gaz.
sur le site des API DOMOTICZ j'ai trouvé cela voir ci dessous
---------------------------------------------------------------------------------------------------
Gas
/json.htm?type=command¶m=udevice&idx=IDX&svalue=0&svalue=USAGE
USAGE= Gas usage in liter (1000 liter = 1 m³)
So if your gas meter shows f.i. 145,332 m³ you should send 145332.
The USAGE is the total usage in liters from start, not f.i. the daily usage.
--------------------------------------------------------------------------------------------------
Pour moi il y a une erreur car j'ai deux fois svalue (cela serait il normal?)
En tout état de cause cette API ne fonctionne pas.
j'ai essayé en remplaçant le svalue= USAGE par nvalue = USAGE usage étant la valeur actuelle du compteur
cela ne fonctionne pas non plus
j'ai essayé avec un script Lua voir ci dessous ne fonctionne pas non plus
---------------------------------------------------------------------------------------------------
--|91.176000
commandArray = {}
local thisfilename = "/home/pi/domoticz/scripts/lua/script_device_gaz.lua"
local virtualcounter_idx = "81"
local switchName = "Contacteur Gaz"
if devicechanged[switchName] == 'On' then
-- Open this file and read in the first line
file = io.open(thisfilename, "rb")
sContents = file:read("*l")
file:close()
-- Parse and update the countvalue
foo, snumber = sContents:match("([^,]+)|([^,]+)")
local countvalue = snumber + 0.010
local newline = foo .. "|" .. string.format("%.3f", tostring(countvalue))
-- Update virtual counter device
ts = virtualcounter_idx .. "|0|" .. string.format("%.3f", tostring(countvalue))
commandArray['UpdateDevice'] = ts
-- Write back new counter value
local file = io.open(thisfilename, "r+")
file:write(newline)
file:close()
end
return commandArray
----------------------------------------------------------------------------------------------------
Si quelqu'un a une idée ou a déjà installé un relevé de de compteur je suis preneur.
J'ai passé mes week end depuis un mois impossible de m'en sortir seul.
En vous remerciant d'avance.
Daniel
