Aller au contenu

Fermeture Volet Au Coucher Du Soleil


Peter

Messages recommandés


--------------------------------------------------------------------------

-- Recuperation des valeurs des variables globales

--------------------------------------------------------------------------

local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil

local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil

-- local Heure = "Heure" --> Nom de la variable globale Heure

-- local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo

local IdTel = fibaro:getGlobalValue("IdI9305") -- Recuperation de id du tel pour le push

local Pause = 0 -- Temp de pause entre chaque commande de modules en seconde

Lien vers le commentaire
Partager sur d’autres sites

hello je vient de mettre ta scene avec les commentaire merci au passage

mais je suis pas malin je n'arrive pas a faire les testes peut tu me dire quelle variable puis je modifier pour teste la scene car comme elle est la elle doit fonctionner au coucher du soleil avantje pouvais modifier nuit en jour avec ma scene bloc

--[[
%% globals
SoleilLever
SoleilCoucher
--]]
local mesvolets ={
["Volet Ch Parents"] = 117,
["Volet CH Lily"] = 108,
["Baie 1"] = 73,
("Baie 2"] = 75,
["Volet 3"] = 77,
["Volet Bureau"] = 28,
}
-- Table Zone (Groupes de modules)
local RDC = {"Volet Bureau", "Baie 1", "Baie 2," "Volet 3"}
local Etage = {"Volet CH Lily", "Volet Ch Parents"}

--------------------------------------------------------------------------
local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil
local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil
--local Heure = "Heure" --> Nom de la variable globale Heure
--local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo
local IdTel = fibaro:getGlobalValue("IdTel") -- Recuperation de id du tel pour le push
 
--------------------------------------------------------------------------
local Pause = 0 -- Temp de pause entre chaque commande de modules en seconde
 
----------------------------------------------------------------------
-- Envoi d'un Push pour avertir que le box àdémarrer ou redémarrer --
----------------------------------------------------------------------
function EnvoiPush(Message)
fibaro:debug("Envoi Push : "..Message)
fibaro:call(IdTel, "sendPush", Message)
end
 
-----------------------------------------------------------------------
-- Test si la valeur a enoyer est différente de la valeur du module
-----------------------------------------------------------------------
function testvaleur(id, valeurs)
local GetValeur = tonumber(fibaro:getValue(id, "value"))
if valeurs ~= GetValeur then
fibaro:call(id, "setValue", valeurs)
--fibaro:debug(id.." - action en cours... - Valeur "..valeurs)
fibaro:sleep(Pause*1000)
end
end
----------------------------------------------------------------------------
-- Recupération de l'id par rapport au nom de la tables mesvolets
----------------------------------------------------------------------------
function volets(zone, valeurs)
 
if (type(zone) == "table") then
local messages = "Les "..#zone.." Volets : "
for i,v in ipairs(zone) do
messages = (messages..v..", ")
local id = mesvolets[v]
if id == nil then
fibaro:debug("ERREUR NOM DU VOLET - "..v.." - dans une table")
EnvoiPush("ERREUR NOM DU VOLET - "..v.." - dans une table")
else
testvaleur(id, valeurs)
end
end
messages = (messages.."ont été actionnés à"..valeurs.."%")
EnvoiPush(messages)
elseif (type(zone) == "string") then
local id = mesvolets[zone]
if id == nil then
fibaro:debug("ERREUR DANS LE NOM DU VOLET : "..zone)
EnvoiPush("EERREUR DANS LE NOM DU VOLET : "..zone)
else
testvaleur(id, valeurs)
EnvoiPush("Le volet : "..zone.." a été actionné à"..valeurs.."%")
end
else
fibaro:debug("Erreur......")
EnvoiPush("Erreur......")
end
 
end
 
--------------------------------------------------------------------
-- test si le déclencheur est lever ou coucher du soleil
--------------------------------------------------------------------
function Test(zone, valeurs, minutes)
if zone ~= nil then
if minutes == nil then;
minutes = 0
end
volets(zone, valeurs)
else
fibaro:debug("Erreur dans la table ou table inéxitante")
EnvoiPush("Erreur dans la table ou table inéxitante")
end
end
 
--------------------------------------------------------------------
-- test Lever
--------------------------------------------------------------------
function lever(zone, valeurs, minutes, Jchome)
if nomTrigger == nomLever and valeurTrigger == minutes then
if Jchome == JourChome or Jchome == nil then
Test(zone, valeurs, minutes)
end
end
end
 
--------------------------------------------------------------------
-- test Coucher
--------------------------------------------------------------------
function coucher(zone, valeurs, minutes, Jchome)
if nomTrigger == nomCoucher and valeurTrigger == minutes then
if Jchome == JourChome or Jchome == nil then
Test(zone, valeurs, minutes)
end
end
end
--------------------------------------------------------------------
-- test Heure
--------------------------------------------------------------------
function heure(zone, valeurs, minutes, Jchome)
if nomTrigger == Heure and valeurTrigger == minutes then
if Jchome == JourChome or Jchome == nil then
Test(zone, valeurs, minutes)
end
end
end
 
--------------------------------------------------------------------------
-- Demarrage du programme
--------------------------------------------------------------------------
local trigger = fibaro:getSourceTrigger()
if (trigger['type'] == 'global') then
nomTrigger = trigger['name']
valeurTrigger = tonumber(fibaro:getGlobalValue(nomTrigger))
print("Nom du déclencheur = ", nomTrigger, " - Minutes : ", valeurTrigger)
else
fibaro:debug("La scéne ne peut être lancer que par une Variable Globale")
fibaro:abort();
--nomTrigger = "Heure"
--valeurTrigger = 6
end
-------------------------------------------------------------------------
-- Ne rien modifier au dessus de cette ligne
-------------------------------------------------------------------------
-- Commandes a écrit pour lever du soleil
-- lever (Funtion qui traite le lever du soleil
-- coucher(zone, valeur, minutes)
-- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever
-- lever(Rue, 80, -10)
-- exemple pour actionné le volet "Bureau" au lever du jour
-- lever("Bureau", 99, 0)
-- Pour actionner un volet au coucher du soleil
-- Il faut remplacer lever par coucher
-- ex : coucher(Rue, 0, 20)
------------------------------------------------------------------------
-- Vous pouvez entrer vos commande en dessous de cette ligne

Encore merci pour ton aide et ta patience

Lien vers le commentaire
Partager sur d’autres sites

local RDC = {"Volet Bureau", "Baie 1", "Baie 2," "Volet 3"}
local Etage = {"Volet CH Lily", "Volet Ch Parents"}

la tu as créé des groupes de volets il ne faut pas que tu mets la baie qui a un détecteur de volet dans le groupe

 

A la fin du code on va dire quel groupe on veut ouvrir ou fermer

coucher(RDC, 0, -5)

les volets du RDC vont recevoir la valeur 0 (0=fermer et 99 ouvert) on peut donc mettre une valeur entre 0 et 99 et le moins -5 pour 5 minute avant le coucher. il faut bien que -5 soit aussi dans la scène jours nuits.

 

On fait de même pour le groupe de volets etage

coucher(Etage, 0, -5)

il doit te resté un volet qui n'est dans aucun groupe c'est celui que l'on ne doit fermer que si la porte et fermer

tu teste cela pour voir si cela fonction

il ne nous restera plus qu'a tester le détecteur d'ouverture pour voir si on peut fermer la fenêtre

mes je préfère que tu testes déjà  cela

Lien vers le commentaire
Partager sur d’autres sites

Ok,je fait les modif je t'ai fait des capture d'écran

Par contre j'ai mi le coucher(RDC, 0, -5) et idem pour l'étage a la fin du code apres le dernier end

Je sais pas si il fallait le mettre avant ou après

et dans le debug il me dit que la scene ne peut être lancé que par une variable globale ( si j'ai bien compris c'est la scene jour_nuit ) mais comment puis-je modifier cette variable

post-1332-0-30277100-1433368484_thumb.jpgpost-1332-0-37494800-1433368520_thumb.jpgpost-1332-0-30277100-1433368484_thumb.jpg

post-1332-0-17697700-1433368754_thumb.jpg

Lien vers le commentaire
Partager sur d’autres sites

Hello j' ai une question comment je change la variable jour nuit avec ta scene ou le fait elle toute seul

Je pensai le faire avec une scene bloc ai je bon ou pas

car mes teste ne fonctionne pas mais aucun souci dans le debug

Juste que la scene demarre avec une variable ci joint la capture du debug

post-1332-0-09226600-1433440589_thumb.jpg

Désoler d'être chiant mais je débute encore merci de ta patience et de ton Temp

Lien vers le commentaire
Partager sur d’autres sites

non pas de soucis

tu n'as rien a faire journuit, leversoleil, couchersoleil, ce mette a jour automatiquement avec la scène jour nuit c'est au moment ou l'une de ces variables va changer de valeur que la scéne volets va ce lancer et voir si les conditions sont remplient pour exécuter ou pas les actions sur les modules c'est que que l'on appel un déclenchement par trigger j'ai volontairement empêcher l’exécution manuel qui n'a aucun intérêt dans cette scène

Si tu regarde la scéne volet en fonction des valeurs que tu as mis dans la scéne journuit

exemple -5

tu vas voir dans le débug une ligne s'ecrire avec le déclencheur et sa valeur 5 minutes avant le coucher

--------------------------------------------------------------------------
-- Ne rien modifier au dessus de cette ligne
-------------------------------------------------------------------------
-- Commandes a écrit pour lever du soleil
-- lever (Funtion qui traite le lever du soleil
-- coucher(zone, valeur, minutes)
-- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever
-- lever(Rue, 80, -10)
-- exemple pour actionné le volet "Bureau" au lever du jour
-- lever("Bureau", 99, 0)
-- Pour actionner un volet au coucher du soleil
-- Il faut remplacer lever par coucher
-- ex : coucher(Rue, 0, 20)
------------------------------------------------------------------------

regarde j'ai bien marqué au dessus et non au dessus j'ai eu un doute lol

c'est pas bien grave mais il est préférable de mettre après le commentaire.

une fois que cela fonction on ajoutera le derniers volets avec son FKG

Lien vers le commentaire
Partager sur d’autres sites

Oui donne moi le nom de la baie vitrée et le numéro d id du fkg je te ferai le code des que j'ai un moment il y a a pour 2mn

Pour le moment je voudrais juste savoir si tes volets ce sont fermés ce soir

Tu peux aussi utiliser la scène pour les ouvrir et voir ne pas ouvrir certains volets les jours fériés

Envoyé de mon SM-G900F

Lien vers le commentaire
Partager sur d’autres sites

Oui je l'ai ,lu dans le debug

La scen ke jour nuit affiche [DEBUG] 21:41:28: heure Coucher Soleil Mini : 21:10:28 - Maxi : 21:51:28

Donct il,ne devrait plus tarder àce fermer surtout que j'ai,m'y -5 dans la table coucher et lever et idem dans la scene du volet

Lien vers le commentaire
Partager sur d’autres sites

C'est trop cool il vienne de ce fermer ton code fonctionne nickel tous sauf la baie 2 qui a le FGK et que je n'est pas pi dans la scene des volet

Trop trop cool

Le debug de la scene volet OFF

post-1332-0-21600000-1433448272_thumb.jpg

Ne regarde pas le phus j'ai pas pris le Temp de trouver l'id avec le toolkit de krikroff

Lien vers le commentaire
Partager sur d’autres sites

Peut tu me confirmer que si je veut que les volet se ferme ou s'ouvre au coucher ou au lever du soleil

Il faut que je modifie les Tcoucher et les Tlever et je met le 0 si je veux que ça fonctionne en suivant le soleil

Ai je bien compris

Lien vers le commentaire
Partager sur d’autres sites

Pas besoin de mettre 0 je l inclus automatiquement dans les 2 tables et lorsque c'est 0 je mets a jours la vg Jour_Nuit j'ai passé un peut de temps pour faire cette scène afin de l'optimiser au mieux et de simplifier son utilisation pour la partager

Envoyé de mon SM-G900F

Lien vers le commentaire
Partager sur d’autres sites

Je te poste le code demain au travail car mon portable fait encore des siennes il me met un bleue screen au demarrage

Portant j'avais bien réinstaller Windows et Ubuntu dessus mais depuis hier soir il déconne et sur l'iPad dur de mettre le code entre balise

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...