Aller au contenu
Peter

Fermeture Volet Au Coucher Du Soleil

Recommended Posts

il y a un bug dans la scène je viens de corriger j'ai oublier de supprimer une ligne

--------------------------------------------------------------------------
-- 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 = "SoleilCoucher"
-- valeurTrigger = -5
end

si tu veux faire des tests sans attendre le déclenchement tu modifies comme cela

--------------------------------------------------------------------------
-- 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();                -- cela permet de lancer la scène manuellement
-- 
   nomTrigger = "SoleilCoucher"     -- nom de la variable couche
   valeurTrigger = -5               -- valeur des minutes
end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est normal j'ai oublier de supprimer le mode forcer donc il avait toujours 5mn

 

Tu peux copier la scène je l'ai modifié

Partager ce message


Lien à poster
Partager sur d’autres sites

bon je vient de dé commenter pour le faire en manuelle car elle ne démarrais pas toute seul et j'ai crée une variable avec l'id du tel mais pas de phus

donc j'ai rajouter local IdTel = 185 et j'ai mis le temp de pose a 0 au lieu de 30

dit moi si je deconne quelque part merci

--[[
%% 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", "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 IdTel = 185
--------------------------------------------------------------------------
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)
        if Idtel ~= nil then
           fibaro:call(IdTel, "sendPush", Message)
        else
           fibaro:debug("Il n'y a aucun tel enregistré")
        end
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 = "SoleilCoucher"
 --valeurTrigger = -5
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
coucher(Etage, 0, -5)
if tonumber(fibaro:getValue(179, "value")) == 0 then
  coucher("Baie 2", 0, -5)
end
coucher(RDC, 0, -5)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis sur mon tel donc pas facile

A priori c'est ok

Si tu veux tester fais comme je t'ai expliquer plu haut

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

oui c'est ce que j'ai fait cela a fonctionner mais en manuel je verrais demain soir en auto et si je suis embêter  je reviendrais vers toi

 

car pour ce soir ce sera tout car la journée a était longue

 

encore merci du temps que tu m'accorde et de ton aide merci merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Normalement ça devrai être bon excuse moi d'avoir bugger bon fin de soirée

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

non a nos ages c'est normale non je déconne

j'avais bien vue la différence entre les 2 scènes mais étant novice j'ai pas osé y toucher

merci et bonne soirée a toi et au tient bey

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello une Question peu etre bête mais j'ai pas la reponse

Le code que tu a rajouter sur la scene volet il vérifie l'état du FGK et si il est ouvert le volet ne se ferme pas et crois tu que si je referme

La baie ou il,est installer apres la fermeture des volet celui la ce fermera ou pas

J'ai pa pu tester hier soir car je l'ai fait en manuel

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai juste fais pour que si la porte et ouverte le volet ne ce ferme pas

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

Est ce que le code pour que le volet se referme tout seul est difficile àfaire ou faut il modifier la scene fermeture volet

Partager ce message


Lien à poster
Partager sur d’autres sites

Soir on fait une surveillance soit ob utilise un trigger dans les 2 cas il faut écrire du code

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

Est ce que cela pourrais fonctionner

--Fermeture volet sejour si porte fenetre fermee

if J_N == "Nuit"

and

( tonumber(fibaro:getValue(179, "value")) == 0 )

then

fibaro:call(26, "close");

end

C'est un bout de code qui vient d'un autre poste ou tu a aider chrispec (post :intégration multiple lua)

Car je ne vais pas te demander de me le faire juste si cela fonctionnerait

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui le soucis c'est comment le declenché j'ai mon idée lol des que j'ai un moment je te fais cela

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok t'ai trop cool

Mais le prochaine coût de main c'est moi qui fait et toi qui corrige le code comme ca sa me permettra d'apprendre

A codé

Encore une fois merci beaucoup de ton aide heureusement qu'il y a encore des gens qui en aide d'autre

Mille merci àtoi

Partager ce message


Lien à poster
Partager sur d’autres sites

De rien le code été partagé il n'y avait que quelques modif a faire

Pas des soucis je te posterai un code pour que tu le corrige. Tu as des volets regarde sur le forum j'ai fais une télécommande pour volet dit moi ce que tu en penses

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok je regarde demain car la on vas au casino et madame attend petite sortie entre madame et moi

Je vais pouvoir en profiter un peu, je regarde demain merci et bonne soirée

J'espère que j'aurais de la chance ce soir (au casino)

Bey

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon chance si tu gagnes un peu pour madame et beaucoup pour la domotique lol

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

C,est sur pour la domotique et juste un peu mais très peu pour elle (non je déconné)

Bey

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

Je vient de regarder ton module virtuel la telecommande pour volet il est excellent

Je vais le mettre en place juste pour tester et étudier ton code

Merci pour tout ce que tu fait sur ce forum et pour l'aide que tu apporte au néophyte que nous somme

(On n'a rien gagner hier soire) mais une bonne soirée a 2

Partager ce message


Lien à poster
Partager sur d’autres sites

il peut servir si tu es enfermé dehors lol volets fermer

 

J'aurai pas le temps de te faire la motif de ton code aujourd'hui je te fais cela des que je peux

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas de souci tu le fait quand tu as du temps je c'est ce que sait surtout avec les beau jour qui arrive on n'a toujours un truc a faire dehors car en ,hiver c'est moin bien

Profite z'en

De toute façon la scene fonctionne bien et le volet ne ce ferme pas si le FGK est en alerte donc on peut prendre l'apéro dehors

Sans ce retrouver àla rue et sa c'est grâce àtoi

Encore merci pour tout

Mais je ne laisse pas tomber je cherche comment faire le code moi même si je trouve je le posterais pour que tu control ci c'est ok

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites


--[[

%% globals

SoleilLever

SoleilCoucher

%% properties

179 value

--]]

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 text = {"bb"}

local RDC = {"Volet Bureau", "Baie 1", "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 JourNuit = fibaro:getGlobalValue("Jour_Nuit")

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

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)

if Idtel ~= nil then

fibaro:call(IdTel, "sendPush", Message)

else

fibaro:debug("Il n'y a aucun tel enregistré")

end

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)

elseif (trigger['type'] == 'property') then

if JourNuit == "Nuit" then

if tonumber(fibaro:getValue(179, "value")) == 0 then

testvaleur("Baie 2", 0)

end

end

fibaro:abort();

else

fibaro:debug("La scéne ne peut être lancer que par une Variable Globale")

fibaro:abort();

-- nomTrigger = "SoleilCoucher"

-- valeurTrigger = -5

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

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

-- si Baie 2 fermer alors fermer volet

if tonumber(fibaro:getValue(179, "value")) == 0 then

coucher("Baie 2", 0, -5)

end -- fin test baie 2 fermer

coucher(Etage, 0, 10)

Partager ce message


Lien à poster
Partager sur d’autres sites

hello et merci je ne m'attendais pas a ce que tu le fasse aussi vite

la je suis au boulot jusqu'a 22h

mais je le ferais demain et j'aurais quelque question aussi sur les modif que tu a faite

en tout cas merci a toi tu est un chef :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Ben je suis tombé du lit a 6h pourtant je suis en congé aujourd'hui cela ne ma prit que 10mn lol

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello

10 Mn et moi cela fait 2 jour que je cherchais comment le faire

Il me reste beaucoup àapprendre pour avoir ton niveau ( mais ça viendra )

Donc maintenant les questions en bas du script du met baie 2, 0, -5 àquoi sa correspond le -5 (je pense àla table coucher vraie ou faux ) puis je mettre le timer que je veux ?

Apres en fin de script coucher (Etage, 0,10) tu m'as dit qu'il fallait avoir le (10, -5, -8) dans la scene jour-nuit si j'ai bien compris si je modifie la valeur par exemple (-5, 0, -10) dans jour nuit et que je fais pareil dans la scene volet cela devrait fonctionner

En tout cas merci de t'ai 10mn de ton temps sur ton jour de congé grand merci àtoi

Partager ce message


Lien à poster
Partager sur d’autres sites

×