Pb mise à jour COUNTER
Publié : 05 mai 2017, 14:01
Bonjour,
J'utilise un script déposé dans cette rubrique pour comptabiliser le temps de fonctionnement d'une chaudière Fuel.
J'ai modifié les script pour connaitre l'utilisation de Fuel pour l'eau chaude ECS.
Lorsque j'ajoute la ligne commandArray['UpdateDevice'] = counter2 .. '|0|' .. tostring(Litre_Compteur_ECS)
Counter n'est plus mis à jour.
Je n'y connais pas grand chose en LUA.
Voici le Script complet :
Quelqu’un a une idée pourquoi ça ne fonctionne pas ?
Par avance merci.
J'utilise un script déposé dans cette rubrique pour comptabiliser le temps de fonctionnement d'une chaudière Fuel.
J'ai modifié les script pour connaitre l'utilisation de Fuel pour l'eau chaude ECS.
Lorsque j'ajoute la ligne commandArray['UpdateDevice'] = counter2 .. '|0|' .. tostring(Litre_Compteur_ECS)
Counter n'est plus mis à jour.
Je n'y connais pas grand chose en LUA.
Voici le Script complet :
Code : Tout sélectionner
-- Ce script permet de remonter une estimation de la consommation en fioul de la chaudière dans un capteur virtuel de type "Counter Incremental".
-- A enregistrer en script_time.lua
--Créer une uservariable. Réglage /plus d'option / Variable utilisateur. Nommé "Total_compteur"
--------------------------------
------ Variables à éditer ------
--------------------------------
local switch = 'Chaudière' -- Nom de l'interrupteur virtuel Chauffage dans Domoticz
local switch2 = 'Pompe_ECS' -- Nom de l'interrupteur virtuel Chauffage dans Domoticz
local counter = 34 -- Numéro idx du Counter Incremental dans Domoticz
local counter2 = 121 -- Numéro idx du Counter Incremental dans Domoticz
local current_date = (os.date("30/12/2016")) -- Date courante
local current_heure = (os.date("17:57")) -- Heure courante
--------------------------------
-- Fin des variables à éditer --
--------------------------------
--------------------------------
---Paramètres--
----------------------------------
Debit_gicleur = 0.60 --Gallon/heure
Conv_Gallon = 3.78541178 --Litres
Debit_gicleur_l_min = Debit_gicleur * Conv_Gallon / 60 -- En litres/min
Var_ajustement = 1 --Ajustement entre circulateur ON et chaudière ON
-------------------
-- Fonction time --
-------------------
time = os.date("*t")
function timedifference(d)
s = otherdevices_lastupdate[d]
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
------------------- --------------------
-- Fonction arrondir à deux décimales --
------------------- --------------------
-- Le chiffre"x" (dec or x) correspond au nombre de décimales à prendre en compte dans le resultat
function arrondir(num, dec)
if num == 0 then
return 0
else
local mult = 10^(dec or 2)
return math.floor(num * mult + 0.5) / mult
end
end
commandArray = {}
-----------------------------------------------------------------------------------------------------
--------------------Calcul du temps de fonctionnement de la chaudière -------------------------------
-----------------------------------------------------------------------------------------------------
-- Si chauffage ON incrémentation de la variable Domoticz "Total_compteur" --
if (otherdevices[switch]=='On') then
commandArray['Variable:Total_compteur']= tostring(uservariables["Total_compteur"] +1)
if (otherdevices[switch2]=='On') then
commandArray['Variable:Total_compteur_ECS']= tostring(uservariables["Total_compteur_ECS"] +1)
end
end
-- Envoi de la varaible valeur Total_compteur dans le Custom Counter Valeur_Compteur en min--
Valeur_Compteur = tostring(uservariables["Total_compteur"])
Valeur_Compteur_ECS = tostring(uservariables["Total_compteur_ECS"])
-- Transforme Valeur_compteur en litre pour gicleur 0.6 gallon/heure
Litre_Compteur = (Valeur_Compteur )* (Debit_gicleur_l_min)*(Var_ajustement)
Litre_Compteur_ECS = (Valeur_Compteur_ECS )* (Debit_gicleur_l_min)*(Var_ajustement)
-- Envoi de la valeur dans le compteur "counter" --
commandArray['UpdateDevice'] = counter .. '|0|' .. tostring(Litre_Compteur)
-- commandArray['UpdateDevice'] = counter2 .. '|0|' .. tostring(Litre_Compteur_ECS)
-- Envoi des informations dans le LOG si chauffage ON --
if (otherdevices[switch]=='On') then
print("")
print("Cumul du temps de fonctionnement chaudière "..Valeur_Compteur.." Minutes".." // "..math.floor((Valeur_Compteur/60)).. " Heures")
print("")
print("Cumul Litres fioul "..Litre_Compteur.." Litres")
print("")
end
return commandArrayQuelqu’un a une idée pourquoi ça ne fonctionne pas ?
Par avance merci.