Aller au contenu

Messages recommandés

Posté(e)

comme cela, ça fonctionne mais je reçois les notification par 2, le nombre de volets, je pense qu'il m'envoi une notification par volet.

Posté(e)

elseif (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) == 0) then --si les volets sont fermés
fibaro:call(53, "sendDefinedPushNotification", "20");
 
elseif (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then --si les volets sont pas fermés
fibaro:call(53, "sendDefinedPushNotification", "21");

Toi aussi franchement ^^

 

--[[
%% autostart
%% properties
%% globals
JouretNuit
--]]
 
local windowscontrolrelay = {57, 65};
--si la nuit tombe et que les volets sont ouverts, meme peut ouverts.
if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then
    for i =1, #windowscontrolrelay do
        if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then
            fibaro:call(windowscontrolrelay[i], "close");
        end
    end
    fibaro:sleep(60*1000); --attente une minute pour attendre que les volets déscendent
 
    if ((fibaro:getValue(57, "value") == 0) and (fibaro:getValue(65, "value") == 0)) then --si les volets sont fermés
        fibaro:call(53, "sendDefinedPushNotification", "20");
 
    elseif ((fibaro:getValue(57, "value") > 0) or (fibaro:getValue(65, "value") > 0)) then --si les volets sont pas fermés
        fibaro:call(53, "sendDefinedPushNotification", "21");
    end
fibaro:debug("Volets fermés");
fibaro:sleep(60*1000);
end
Posté(e)
--[[
%% autostart
%% properties
%% globals
JouretNuit
--]]
 
local windowscontrolrelay = {57, 65};
--si la nuit tombe et que les volets sont ouverts, meme peut ouverts.
if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then
    for i =1, #windowscontrolrelay do
        if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then
            fibaro:call(windowscontrolrelay[i], "close");
        end
    end
    fibaro:sleep(60*1000); --attente une minute pour attendre que les volets déscendent
 
    if ((tonumber(fibaro:getValue(57, "value")) == 0)) and ((tonumber(fibaro:getValue(65, "value")) == 0)) then --si les volets sont fermés
        fibaro:call(53, "sendDefinedPushNotification", "20");
 
    elseif ((tonumber(fibaro:getValue(57, "value")) > 0)) or ((tonumber(fibaro:getValue(65, "value")) > 0)) then --si les volets sont pas fermés
        fibaro:call(53, "sendDefinedPushNotification", "23");
    end
fibaro:debug("Volets fermés");
fibaro:sleep(60*1000);
end

comme ça plutôt, ça rentre tu vois  :P

ça marche, si ils sont arrêtés en course, j'ai la bonne notification :60:  

Merci Shad

Posté(e)

ça commence àme plaire le Lua, j'ai affiné avec la notification sur le volet qui ne c'est pas fermé.

--[[
%% autostart
%% properties
%% globals
JouretNuit
--]]
 
local windowscontrolrelay = {57, 65};
--si la nuit tombe et que les volets sont ouverts, meme peut ouverts.
if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then
    for i =1, #windowscontrolrelay do
        if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then
            fibaro:call(windowscontrolrelay[i], "close");
        end
    end
   fibaro:sleep(50*1000); --attente 50 secondes pour attendre que les volets déscendent
 
    if ((tonumber(fibaro:getValue(57, "value")) == 0)) and ((tonumber(fibaro:getValue(65, "value")) == 0)) then --si les volets sont fermés
        fibaro:call(53, "sendDefinedPushNotification", "20");
 
    elseif (tonumber(fibaro:getValue(57, "value")) > 0) then  --si le volet salon est pas fermés
         fibaro:call(53, "sendDefinedPushNotification", "21");
    elseif (tonumber(fibaro:getValue(65, "value")) > 0) then --si le volet cuisine est pas fermés
        fibaro:call(53, "sendDefinedPushNotification", "23");
    end
fibaro:debug("Volets fermés");
fibaro:sleep(60*1000);
end
  • Upvote 1
Posté(e)

Erf !!!!

 

Entre mes fautes de frappes et les tonumber je vais me coucher Xd.

Bref content que sa fonctionne ;)

Posté(e)

Cool voila un truc qui avance, sacré Shad toujours prêt à  rendre service pour faire un script LUA ;).

Moi faut aussi que je m'y mettes sur la reprog de mon script pour les volets, les contraintes:

- Ouverture à  heure fixe le week-end histoire de pouvoir dormir tranquille,

- Ouverture en semaine soit à  une heure fixe si le jour se lève trop tot, soit au lever du soleil sur le soleil se lève après l'heure fixe déterminée

 

Bon vais essayer de m'y mettre et reprendre deux trois idées de ton script ;)

  • 4 semaines après...
Posté(e)

 

ça commence à  me plaire le Lua, j'ai affiné avec la notification sur le volet qui ne c'est pas fermé.

--[[
%% autostart
%% properties
%% globals
JouretNuit
--]]
 
local windowscontrolrelay = {57, 65};
--si la nuit tombe et que les volets sont ouverts, meme peut ouverts.
if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then
    for i =1, #windowscontrolrelay do
        if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then
            fibaro:call(windowscontrolrelay[i], "close");
        end
    end
   fibaro:sleep(50*1000); --attente 50 secondes pour attendre que les volets déscendent
 
    if ((tonumber(fibaro:getValue(57, "value")) == 0)) and ((tonumber(fibaro:getValue(65, "value")) == 0)) then --si les volets sont fermés
        fibaro:call(53, "sendDefinedPushNotification", "20");
 
    elseif (tonumber(fibaro:getValue(57, "value")) > 0) then  --si le volet salon est pas fermés
         fibaro:call(53, "sendDefinedPushNotification", "21");
    elseif (tonumber(fibaro:getValue(65, "value")) > 0) then --si le volet cuisine est pas fermés
        fibaro:call(53, "sendDefinedPushNotification", "23");
    end
fibaro:debug("Volets fermés");
fibaro:sleep(60*1000);
end

Salut, j'essaye de comprendre le script.. je bloque notamment sur les lignes commençant par "fibaro:call(53,"....Si les modules 57 et 65 sont des volets, le 53 c'est quoi?

Posté(e)

Je suis en train de la modifier pour qui ce fermer par rapport a la luminosité.

Je ne reviens pas sur les dire de Shad, elle est de lui cette scène  ;), il sait bien mieux que moi

Posté(e)


--[[

%% properties

187 value

%% globals

JouretNuit

--]]

local startSource = fibaro:getSourceTrigger();

local windowscontrolrelay = {57, 65};

--si la nuit tombe et que les volets sont ouverts, meme peut ouverts et que le luminosité est à40 lux

if (tonumber(fibaro:getValue(187, "value")) <= 40) and ( fibaro:getGlobalValue("JouretNuit") == "Nuit") and ((tonumber(fibaro:getValue(57, "value")) > 0)) and ((tonumber(fibaro:getValue(65, "value")) > 0)) then

for i =1, #windowscontrolrelay do

if (tonumber(fibaro:getValue(windowscontrolrelay, "value")) > 0) then

fibaro:call(windowscontrolrelay, "close");

end

end

fibaro:sleep(40*1000); --attente une minute pour attendre que les volets déscendent

if ((tonumber(fibaro:getValue(57, "value")) == 0)) and ((tonumber(fibaro:getValue(65, "value")) == 0)) then --si les volets sont fermés

fibaro:call(53, "sendDefinedPushNotification", "20");

fibaro:call(58, "sendDefinedPushNotification", "20");

elseif (tonumber(fibaro:getValue(57, "value")) > 0) then --si le volet salon est pas fermés

fibaro:call(53, "sendDefinedPushNotification", "23");

fibaro:call(58, "sendDefinedPushNotification", "23");

elseif (tonumber(fibaro:getValue(65, "value")) > 0) then --si le volet cuisine est pas fermés

fibaro:call(53, "sendDefinedPushNotification", "24");

fibaro:call(58, "sendDefinedPushNotification", "24");

end

fibaro:debug("Volets fermés");

fibaro:sleep(60*1000);

end

Posté(e)

pourquoi Shad? j'ai pas essayé ça, juste la fermeture qui fonctionne.

 

je l'ai mis en place, si il y a un risque, je préférerai le savoir  :wacko:

Posté(e)

je ne sais pas comment cette ligne en ligne 13 est arrivé là !!! surement un reste de mes ancienne scène resté dans notepad++

and ((tonumber(fibaro:getValue(57, "value")) > 0)) and ((tonumber(fibaro:getValue(65, "value")) > 0))

mais,  cela peux que faire un doublon? 

 

 

comme ça c'est mieux!

--[[
%% properties
187 value
%% globals
JouretNuit
--]]


local startSource = fibaro:getSourceTrigger();
local windowscontrolrelay = {57, 65};
--si la nuit tombe et que les volets sont ouverts, meme peut ouverts et que le luminosité est à  40 lux
if (tonumber(fibaro:getValue(187, "value")) <= 10) and ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then
    for i =1, #windowscontrolrelay do
        if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then
            fibaro:call(windowscontrolrelay[i], "close");
        end
    end
   fibaro:sleep(40*1000); --attente une minute pour attendre que les volets déscendent
 
    if ((tonumber(fibaro:getValue(57, "value")) == 0)) and ((tonumber(fibaro:getValue(65, "value")) == 0)) then --si les volets sont fermés
        fibaro:call(53, "sendDefinedPushNotification", "20");
	fibaro:call(58, "sendDefinedPushNotification", "20");
    elseif (tonumber(fibaro:getValue(57, "value")) > 0) then  --si le volet salon est pas fermés
        fibaro:call(53, "sendDefinedPushNotification", "23");
	fibaro:call(58, "sendDefinedPushNotification", "23");
    elseif (tonumber(fibaro:getValue(65, "value")) > 0) then --si le volet cuisine est pas fermés
        fibaro:call(53, "sendDefinedPushNotification", "24");
	fibaro:call(58, "sendDefinedPushNotification", "24");
	end
fibaro:debug("Volets fermés");
fibaro:sleep(60*1000);
end
Posté(e)

@amonthet

Pour info, si tu ne peux pas installer le toolkit de Monsieur Kirkoswald, tu peux créé une scène en mode bloc. Ensuite tu demande de la passer en mode lua et tu verras les Ids.

Posté(e)

Oui, tu as raison Steven, c'est comme cela que j'ai trouvé les miens au départ , mais maintenant, c'est tellement facile avec le toolkit ...

Posté(e)

Et en fait avant que tu enlèves la ligne, si tu n'avais pas les deux volets d'ouvert ta scène ne ce serait pas lancé.

Posté(e)

@Shad : j'ai trouvé pourquoi cette ligne était rajouté à  la ligne 13, ce n'était pas une erreur, j'ai modifier cette ligne le 19 mars et depuis, cela fonctionne.

and ((tonumber(fibaro:getValue(57, "value")) > 0)) and ((tonumber(fibaro:getValue(65, "value")) > 0))

c'est très simple, comme est fait le script en début de poste, sans cette ligne, à  chaque fois que la variable JourNuit passe en "Nuit", la scène ce lance, vérifie si les volets sont ouvert, si ils sont ouvert, elle les ferme et envoie un push, mais, si les volets sont déja fermés alors, la scène ce lance, vérifie les volets, voit qu'ils sont fermés et envoie un push quand même, donc tout les soir, je recevais un push, même si je n'étais pas chez moi et que les volets non pas étaient manipulés.

 

alors, qu'avec cette ligne en plus, la scène ce lance, et vérifie les deux conditions, il fait "Nuit" et "les volets sont ouvert" avant d'aller plus loin, donc je reçois le push uniquement si les volets ont était véritablement fermés. 

 

maintenant, avec ma modif pour insérer le capteur de luminosité, là  j'ai un petit soucis que le "scheduler" devrait corriger.

là  comme est la scène, les volets ce ferment uniquement si  la variable JourNuit passe en "Nuit" et que le capteur et égal ou inférieure à  10 lux, sauf que, je peux plus ouvrir mes volets la nuit, sauf si la lumière de la salle à  manger et allumée, car si le capteur et dans le noir, ou presque, mes volets sent refermes  :wacko:, donc, il faut que je donne un créneau horaire en plus pour le déclenchement:  30 minutes avant et aprés que  la variable JourNuit passe en "Nuit" et que le capteur et égal ou inférieure à  10 lux.

donc je posterai la solution que je trouverai.

 

HS: je suis un petit long dans mes explications et cela va certainement barber certain qui maîtrise la chose parfaitement.

J'essai d’être le plus explicite possible pour les personnes qui comprennent pas trop,puisse déchiffrer le but du code,ceux qui sont novice et qui n'osent pas trop poser les questions de peur de passer pour des "gland".

Moi, vous aurez remarqué, j'ai un leitmotiv, R.A.B.! je ne vais pas passer une semaine sur un problème qui peut en plus abîmer mon matériel, alors qu'il y a ici des super crack, qui connaissent la solution et de plus, c'est le but d'un forum.

cela fait 20 ans que je suis tech en informatique et je ne suis pas là  par hasard, on passe pas 20 ans dans les mailles du filet si est pas bon, la domotique, c'est nouveau pour moi et en même temps pas tant que ça...

Alors les noob, les novices et débutants, et vous êtes nombreux à  vous inscrire sur le forum, n’hésitez pas, posez vos questions, il faut démocratiser la domotique...

 

vous allez vous dire, il à  fondu un plomb le Fred!! et bien non, ce qui me fait réagir, c'est que je parle de la domotique autour de moi, à  mes amis, des connaissances, et ceux qui sont vraiment intéressés, je leur donne l'adresse du forum.

et justement, j'ai croisé une connaissance qui ne c'est même pas inscrit, qui a juste survolé le forum et il ma dit entre autre chose "c'est pour les surdoués la domotique, je ne comprend pas un mot sur trois".(et c'est loin d’être un con).

donc, je pense, qu'il faut mettre des mots compréhensibles car des débutants, il y en aura tout le temps. 

moi le premier, je n’écrivais pas "Virtual Device" mais "V D", je vais faire attention à  ça maintenant... (super, je découvre que les lettre V et D collé, ce transforme en "virtual device" automatiquement , la bravo!!)

 

bon,rien à  voir avec ce post, je l'ai un peu pourri, mais c'est pas grave, c'est le mien  :D

  • Upvote 3
Posté(e)

Fred j'ai compris pour ta ligne, mais tu devrais écrire:

 

if ((tonumber(fibaro:getValue(187, "value")) <= 40) and ( fibaro:getGlobalValue("JouretNuit") == "Nuit") and ((tonumber(fibaro:getValue(57, "value")) > 0) or (tonumber(fibaro:getValue(65, "value")) > 0)))

 

Là  au moins même si tu n'as qu'un volet de fermé l'autre se fermera aussi.

 

 

Après pour ton problème de notification, je te dirais tout simplement de créer 2 local, que tu appelles chacun leur tour dans la boucle for, si le volet est ouvert tu changes la valeur, et dans ce cas dans tu peux gérer tes notifications et ne les envoyer que si un volet précis n'étais pas fermé.

 

Bon je sais pas so tu m'as compris car j'en suis encore à  mon café et pas du tout réveillé ^^.

Posté(e)

bien vu Shad,   or à  la place de and, effectivement, c'est mieux, ça ferme le volet qui est ouvert même si l'autre est fermé.

c'est fou, on peut toujours affiner un script  :)

du coup, en laissant cette ligne, cela règle le problème de notification, si aucun des volets est ouvert, la scène ne vas pas plus loin  ;)

 

Merci Shad  ;)

×
×
  • Créer...