Page 1 sur 1

Calcul du temps de fct total

Publié : 22 juil. 2017, 01:23
par Dim33
Bonjour,

Je cherche un petit script en blocky qui me permet de mesurer le temps de fct total (temps entre le off/on et le on/off) d'un radiateur électrique et de me l'afficher dans l'onglet Mesures par exemple.

Merci d'avance.

Re: Calcul du temps de fct total

Publié : 26 juil. 2017, 19:13
par balajol
Bonsoir,
Faute de blocky, ce script (de ce forum, à l'origine pour le calcul de la durée de fonctionnement d'une chaudière) me permet de connaître le temps de fonctionnement de ma VMC.
Il faut créer la variable utilisateur Total_compteur ( Reglage/Plus d'options/Variables utilisateur),
le "Counter" (Reglage/Materiel/créer des capteurs virtuels)
Aller dans Reglage/dispositifs pour connaître l'IDX du counter précédemment créé. (en l'occurrence 631 pour ma VMC)
Script Lua de type Time

Code : Tout sélectionner

 -- Ce script permet de remonter la durée de fonctionnement d'un dispositif dans un capteur virtuel de type "Counter Incremental"
 
-- Pré requit, création variable utilisateur: "Total_compteur", type décimal, valeur départ :0    et un counter , offset:0, type Temps,  Mn


 --------------------------------Durée fonctionnement VMC
 ------ Variables à éditer ------
 --------------------------------
 local switch = 'VMC'      -- Nom de l'interrupteur  dans Domoticz
 local counter = 631         -- Numéro idx du Counter Incremental dans Domoticz (Duree-Marche-Ventilation,  Counter  à créer, offset: 0  Temps,  Mn)
 local current_date = (os.date("%d/%m/%Y"))      -- Date courante
 local current_heure = (os.date("%X"))         -- Heure courante
 --------------------------------
 -- Fin des variables à éditer --
 --------------------------------


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

   -- Si VMC  ON incrémentation de la variable Domoticz "Total_compteur" --
   if (otherdevices[switch]=='On') then
   commandArray['Variable:Total_compteur']= tostring(uservariables["Total_compteur"] +1)
   end
   
   -- Envoi de la variable valeur Total_compteur dans le Custom Counter Valeur_Compteur --
   Valeur_Compteur = tostring(uservariables["Total_compteur"])

   -- Envoi de la valeur dans le compteur "counter" --
   commandArray['UpdateDevice'] = counter .. '|0|' .. tostring(Valeur_Compteur)
   
   -- Envoi des informations dans le LOG si VMC ON --   
   if (otherdevices[switch]=='On') then
      print("")
      print("Cumul du temps de fonctionnement de la ventilation "..Valeur_Compteur.." Minutes".."  //  "..math.floor((Valeur_Compteur/60)).. " Heures")
      print("")
   end  
return commandArray
cdt
Bertrand