Simulation de présence (random) avec blocky ??

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 <\>.
Nicogluck
Messages : 112
Inscription : 24 nov. 2014, 14:54

Re: Simulation de présence (random) avec blocky ??

Message par Nicogluck »

jojo57 a écrit :Merci mais... comment ?
Comment peut on via un script activer ou désactiver un interrupteur ?

Je veux dire par la pas juste le mettre à "off" ou "on" (ça c'est facile) mais l’empêcher de changer d'état, vraiment désactiver le planning ??
Parce que j'ai plusieurs planning avec plusieurs prises et je me vois mal changer tout ça dans domoticz quand je suis chez moi et que ce n'est pas dans la planification.

J'ai cherché et recherché ici et sur internet et pas trouvé, ya il une astuce qq part ??

Merci
Voici ce que je propose pour ton problème de jour férié ou week-end.
Le script ci-dessous, à baptiser " script_time_xxx.lua ", consiste à détecter le type de jour (semaine ou week-end/férié), après quoi, tu exécutes directement tes actions en conséquence dans le script, tu peux aussi récupérer juste l'info du type de jour dans une variable utilisateur par exemple (si ça peut servir dans plusieurs scripts).
Ca fait appel à un API spécifique qui renseigne justement si le jour actuel est férié ou non (IDEM pour le week-end).

Code : Tout sélectionner

-- Définition d'un fonction pour lancer l'API
function os.capture(cmd, raw)
  local f = assert(io.popen(cmd, 'r'))
  local s = assert(f:read('*a'))
  f:close()
  if raw then return s end
  s = string.gsub(s, '^%s+', '')
  s = string.gsub(s, '%s+$', '')
  s = string.gsub(s, '[\n\r]+', ' ')
  return s
end

commandArray = {}

-- Lancement du script à minuit (ou presque... en tout cas, au changement de jour)
if os.date("%H:%M") == "00:05"

then

-- Récupération de l'info du jour actuel, s'il est week-end ou non
	local jour_we = os.capture('/usr/bin/curl http://api.domogeek.fr/weekend/now' , true);

-- Récupération de l'info du jour actuel, s'il est férié ou non
	local jour_ferie = os.capture('/usr/bin/curl http://api.domogeek.fr/holiday/now' , true);

	if (jour_we == false and jour_ferie == false)
	then

-- (... Actions à lister ici si le jour est entre le lundi et le vendredi inclus, hors jours fériés)

	elseif (jour_we == true or jour_ferie == true)
	then

-- (... Actions à lister ici si le jour est un samedi, un dimanche ou un jour férié)

	end
end
return commandArray
Qu'en penses-tu ?
Synology DS415play / RFXCom / récepteurs 433 / sondes temp+hygro Oregon / cartes relais Sainsmart
Répondre