Aller au contenu

Petite Question de bonne pratique en LUA


Messages recommandés

Posté(e) (modifié)

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
Posté(e)

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
Posté(e)

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

Posté(e)

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
×
×
  • Créer...