Script Compteur Temps/Jour sur un Intérrupteur

-- 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

Script Compteur € total sur un Intérrupteur

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