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