Script Compteur Incrémental Temps

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
vwolive
Messages : 27
Inscription : 07 janv. 2018, 12:17

Script Compteur Incrémental Temps

Message par vwolive »

Re bonjour à tous.

Alors j'ai domotisé ma VMC, j'ai créé un compteur incrémental virtuel (counter, temps, minutes) et un scrip qui me l'incrémente.
Tout marche bien, enfin presque....
le compteur s'incrémente bien, SAUF l'histogramme de la "semaine passée" qui reste à 0.
VMC.PNG
VMC.PNG (521.83 Kio) Consulté 2626 fois
Si quelqu'un à une idée pour me dépanner....., je suis preneur.
J'ai fait sur le même principe des compteurs pour mes chauffages et j'ai le même problème.... Je ne sais pas d'ou ça peur venir.

Voici mon script:

Code : Tout sélectionner

-----------------------------------------------------------------------------------------------------
-- Durée fonctionnement VMC -------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

-- 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: "Compteur VMC", type décimal, valeur départ :0    et un counter , offset:0, type Temps,  Mn


 ----------------------------------------------------------------------------------------------------
 ------ Variables à éditer --------------------------------------------------------------------------
 ----------------------------------------------------------------------------------------------------
 local switch = 'VMC'                       -- Nom de l'interrupteur  dans Domoticz
 local counter = 214                        -- Numéro idx du Counter Incremental dans Domoticz (VMC H,  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 "Compteur VMC" --
   if (otherdevices[switch]=='On') then
   commandArray['Variable:Compteur VMC']= tostring(uservariables['Compteur VMC'] +1)
   end
   
   -- Envoi de la variable valeur Compteur VMC dans le Custom Counter Valeur_Compteur --
   Valeur_Compteur = tostring(uservariables['Compteur VMC'])

   -- 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 VMC "..Valeur_Compteur.." Minutes".."  //  "..math.floor((Valeur_Compteur/60)).. " Heures")
      print("")
   end  
return commandArray
Répondre