Aller au contenu

Messages recommandés

Posté(e)

Checker l'éclairage chez soi

 

Exécution automatique d'un script qui vérifie si toutes les lumières sont éteintes au départ de chez soi.

 

NB :

  • Je ne suis pas un spécialiste de LUA et mes connaissances en programmation datent de plus de 20 ans (inutile de m'appeler papy  <_< )
  • L'exemple ci-dessous est une adaptation d'un script de contrôle de fenêtres écrit par @quikdav...j'espère qu'il rejoindra ce forum

 

Cette scène est exécutée automatiquement au départ de chez moi

 

Quelques précisions :

- "wallplug" et "interrupteur" sont des variables locales de type "table"

- les valeurs entre parenthèses bouclées, sont les ID des modules Fibaro (Wall plug FGP111  / Dimmer FGD111). Elles sont séparées par des virgules

- Le script va lire les valeurs d'une table dans une boucle : "for i = 1, #wallplug do" par exemple

- Ces valeurs sont utilisées dans les commandes : "fibaro:getValue"

- "tonumber" permet de changer le type de variable de "caractères à  "nombre"

- la variable "request" recueille le message à  envoyer : une concaténation de textes et de variable

- les deux lignes suivantes permettent d'envoyer le message par l'outil  "Prowl" que j'expliquerai dans un futur post

fibaro:setGlobal('pushnotification', request);
fibaro:call(46, "pressButton", "3"); -- Message Prowl 

 

Voilà  donc un premier post à  propos de LUA

Et n'hésitez pas dans vos remarques !

--[[
%% properties
%% globals
--]]


wallplug = {6, 67, 68, 69} -- id des wallplugs
interrupteur = {22, 50, 51, 87} -- id des interrupteurs


local startSource = fibaro:getSourceTrigger();
local bconso = 0


-- contrôle wall plug
for i = 1, #wallplug do
local wallplugname = fibaro:getName(wallplug[i]);
local request
-- contrôle si conso supérieure à  1W (halogène consomme 0.5 à  l'arrêt)
if (tonumber(fibaro:getValue(wallplug[i], "valueSensor")) > 1) then
-- remplace les espaces par des %20 pour que cela puisse être interprété dans une URL
wallplugname = string.gsub(wallplugname, " ", "%%20")
request = 'La%20lampe%20'..wallplugname..'%20est%20allumée';
fibaro:debug(request);
fibaro:setGlobal('pushnotification', request);
fibaro:call(46, "pressButton", "3"); -- Message Prowl 
bconso = 1
fibaro:sleep(2000);
end
end
-- contrôle interrupteurs
for i = 1, #interrupteur do
local interrupteurname = fibaro:getName(interrupteur[i]);
local request
if (tonumber(fibaro:getValue(interrupteur[i], "value")) > 0) then
-- remplace les espaces par des %20 pour que cela puisse être interprété dans une URL
interrupteurname = string.gsub(interrupteurname, " ", "%%20")
request = 'La%20lampe%20'..interrupteurname..'%20est%20allumée';
fibaro:debug(request);
fibaro:setGlobal('pushnotification', request);
fibaro:call(46, "pressButton", "3"); -- Message Prowl 
bconso = 1
fibaro:sleep(2000);
end
end


if (bconso == 0) then
request = "Aucune%20lampe%20n'est%20allumée";
fibaro:debug(request);
fibaro:setGlobal('pushnotification', request);
fibaro:call(46, "pressButton", "3"); -- Message Prowl
end
  • Upvote 2
Posté(e)

Pour ceux qui n'utilisent que des modules Fibaro, il est possible de programmer les modules pour réagir ou non àla commande All On/ All Off. L'envoi d'une trame "All Off" éteint tous les modules ;) . Par contre il faut être certain de son affaire sous peine d'éteindre la pompe de son aquarium, son frigo ou pire sa cave àvin :13:

Posté(e)

Ce serait donc le cas du dimmer FGD211 (paramètre 1) que j'utilise

Je n'ai par contre pas trouvé ce paramètre sur les wallplug

Sinon, pour sécuriser mon installation, j'ai prévu un onduleur/batteries dédié à  l'alimentation de secours de ma cave à  vin  ;)

  • 2 mois après...
Posté(e)

Euh... là  j'ai pas trop compris ?

 

Pour ce qui concerne le script qui date de décembre 2013, il s'agissait d'un tuto et non d'une mise en oeuvre réelle.

En effet, on peut ajouter l'extinction automatique des lumières, plutôt qu'un message en quittant la maison... sauf que l'on peut oublier quelqu'un dans une pièce  ;)

 

Pour les wallplug, l'extinction automatique doit être réfléchie avant, comme le souligne @Krikroff

×
×
  • Créer...