-- Ce script permet de remonter la durée de fonctionnement en minutes d'un interrupteur dans un capteur virtuel de type "texte"
--
-- Les bases à créer :
-- 1_Créer un capteur virtuel texte et repérer son Idx.(Domoticz-->configuration-->Matériel-->Créer un capteur virtuel)
-- 2_Créer une User Variable de type integer.(Domoticz-->configuration-->plus d'options-->variables utilisateurs-->créer une variable utilisateur du type integer avec la valeur 0)
--------------------------------
------ Variables à éditer ------
--------------------------------
local user_var = 'Chauff_Aqua' -- Nom de la variable utilisateur (uservariable)utilisé pour mémoriser la valeur en minutes dans Domoticz (Domoticz-->configuration-->plus d'options-->variables utilisateurs).
local switch = 'Chauffage_Aquarium' -- Nom de l'interrupteur pour lequel il faut compter les minutes de fonctionnement.
local counter_txt = 912 -- Numéro idx du capteur virtuel texte.
local Heure_Raz = 0 -- Heure de remise à zéro du compteur (compris entre 0 et 23).
--------------------------------
-- Fin des variables à éditer --
--------------------------------
-----------------------------------------------------------------------------------------------------
--------------------Calcul du temps de fonctionnement Journalier -------------------------------
-----------------------------------------------------------------------------------------------------
commandArray = {}
time=os.time()
local minutes = tonumber(os.date('%M',time))
local hours = tonumber(os.date('%H',time))
local NowInMinutes = (hours * 60 + minutes)
local h_min = (Heure_Raz * 60)
if (otherdevices[switch]=='On') then
commandArray['Variable:'..user_var] = tostring(uservariables[user_var] +1)--Lecture user variable et enregistrement + 1 dans cette même variable
Valeur_Compteur = tostring(uservariables[user_var])--Lecture dans variable temporaire
Valeur_Compteur_txt = tostring(""..math.floor((Valeur_Compteur/60)).. "H:"..math.floor(Valeur_Compteur-(math.floor((Valeur_Compteur/60))*60)).. "Mn")--Calcul et enregistrement dans valeur tempo txt + formatage
commandArray['UpdateDevice'] = counter_txt .. '|0|' .. Valeur_Compteur_txt--Enregistrement dans Compteur Txt
end
if ((NowInMinutes > h_min) and (NowInMinutes < (h_min + 10))) then--RAZ journalier à l'heure voulu.
commandArray['Variable:'..user_var]= tostring(0)
Valeur_Compteur_txt = tostring("0H:0Mn")
commandArray['UpdateDevice'] = counter_txt .. '|0|' .. Valeur_Compteur_txt
end
return commandArray
Une petite modification du premier script, j'ai créé ce script pour savoir combien me coute mon aquarium par mois…
--Mise en route le 13/10/2020
-- Ce script permet de remonter la durée de fonctionnement en minutes d'un interrupteur dans un capteur virtuel de type "texte"
--
--
-- Les bases à créer :
-- 1_Créer un capteur virtuel texte et repérer son Idx.(Domoticz-->configuration-->Matériel-->Créer un capteur virtuel)
-- 2_Créer une User Variable de type integer.(Domoticz-->configuration-->plus d'options-->variables utilisateurs-->créer une variable utilisateur du type integer avec la valeur 0)
--------------------------------
------ Variables à éditer ------
--------------------------------
local user_var = 'Chauff_Aqua_Total' -- Nom de la variable utilisateur (uservariable)utilisé pour mémoriser la valeur en minutes dans Domoticz (Domoticz-->configuration-->plus d'options-->variables utilisateurs).
local switch = 'Chauffage_Aquarium' -- Nom de l'interrupteur pour lequel il faut compter les minutes de fonctionnement.
local counter_txt = 923 -- Numéro idx du capteur virtuel texte.
--------------------------------
-- Fin des variables à éditer --
--------------------------------
-----------------------------------------------------------------------------------------------------
--------------------Calcul du temps de fonctionnement Journalier -------------------------------
-----------------------------------------------------------------------------------------------------
commandArray = {}
time=os.time()
local minutes = tonumber(os.date('%M',time))
local hours = tonumber(os.date('%H',time))
local NowInMinutes = (hours * 60 + minutes)
if (otherdevices[switch]=='On') then
commandArray['Variable:'..user_var] = tostring(uservariables[user_var] +1)--Lecture user variable et enregistrement + 1 dans cette même variable
Valeur_Compteur = tostring(uservariables[user_var])--Lecture dans variable temporaire
Valeur_Compteur_txt = tostring(""..math.floor((Valeur_Compteur*0.00038766)).. " €")--Calcul /60mn(pour l'avoir en heures)*0.155064€(prix du kw/h-TTC)/6.6666666666(1000W/150W)==>1/60*0.155064/6.666666666=0.00038766 et enregistrement dans valeur tempo txt + formatage
commandArray['UpdateDevice'] = counter_txt .. '|0|' .. Valeur_Compteur_txt--Enregistrement dans Compteur Txt
end
return commandArray