Aller au contenu
jjacques68

Petite Question de bonne pratique en LUA

Recommended Posts

Bonsoir à tous !

 

Je me pose une question de bonne pratique concernant les scènes avec des plages horaires...

 

Voici un bout de code très simple qui fonctionne très bien :

 

--[[
%% autostart
%% properties
%% events
%% globals
--]]

function Main()
  local currentDate = os.date("%H:%M")
  local TimeOn = "18:00"
  local TimeOff = "19:00"

  if currentDate >= TimeOn and currentDate <= TimeOff then
    fibaro:call(44, "turnOn")
  else
    fibaro:call(44, "turnOff")
  end  
  
  setTimeout(Main, 60*1000)
end

Main()

La on remarque que toute les minutes on teste l'heure courante pouvoir si on est après 18h et avant 19h.

Mais du coup, entre 18h et 19h, toutes les minutes on envoie la commande TurnOn au module ! donc 60 fois en 1 heure !

 

et ducoup tout le reste du temps, on envoie la commande turnoff ! donc 1380 commandes envoyées en 23 h au module !

 

Moi ça me choque un peu non !??? pas vous ???

 

ça surcharge pas la box, modules ou autre ?

 

 

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonne réflection
Il est préférable de récupérer la valeur du module et de la comparer avec la valeur que l'on veut envoyé

Envoyé de mon SM-G901F en utilisant Tapatalk


  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est ce que je me disais, tester la valeur du module avant...

 

mais quand on teste la valeur d'un module,  on est obligé de l'interroger ?

Donc au final cela ce fera toutes les minutes aussi !

A moins que la HC se sert d'une valeur dans sa mémoire... ?

Partager ce message


Lien à poster
Partager sur d’autres sites

tu interrogeras la DB.

Lire dans la DB est bien moins conommateur de CPU qu'y écrire.

De plus, celà usera moins le disque (clé USB) interne, car ce qui l'use c'est l'écriture

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok bon ben je vais revoir beaucoup de scènes du coup, afin de lire la valeur des modules avant de les actionner...

 

merci !!!!

Partager ce message


Lien à poster
Partager sur d’autres sites

×