mprinfo Posté(e) le 17 avril 2015 Signaler Posté(e) le 17 avril 2015 Oui je me suis trompé de fenêtre
mprinfo Posté(e) le 18 avril 2015 Signaler Posté(e) le 18 avril 2015 --[[ %% properties %% globals --]] local num = fibaro:countScenes () -- nombres d'instances en cours d'excution de la scene fibaro:debug("Nombre de scènes en cours = " ..num) if (num == 1) then local J_N = fibaro:getGlobalValue( "Jour_Nuit" ); fibaro:debug("Jour_Nuit = " ..J_N) -- Fermeture des volets des chambres et allumage lumieres rdc local Id = {} local IdValue = {} if J_N == "Nuit" then local Id = {16, 18, 20, 28, 34} -- id volets et lumieres local IdValue = {0, 0, 0, "turnOn", "turnOn"} -- Valeur 0=Fermer - 99 = Ouvert local VoletPorte = {22, 24, 26} -- Volet si porte fermée local Detecteur = {107, 115, 111} -- detecteur d'ouverture fibaro:debug("Nuit") end for i = 1,#Id do local TestName = fibaro:getName(Id) local TestValue = fibaro:getValue(Id, "value") fibaro:debug(TestName) if IdValue == "open" or IdValue == "close" or IdValue == "turnOn" or IdValue == "turnOff" then fibaro:call(Id, IdValue); else fibaro:call(Id, "setValue", IdValue); -- Commande Module end -- porte avec detecteur if i <= #VoletPorte and (tonumber(fibaro:getValue(Detecteur, "value")) == 0 ) then fibaro:call(VoletPorte, "close"); fibaro:debug(fibaro:getName(Detecteur).." - Status = "..fibaro:getValue(Detecteur, "value")) end end else fibaro:debug("Nombre de scènes en cours " ..num) end
chrispec Posté(e) le 18 avril 2015 Auteur Signaler Posté(e) le 18 avril 2015 merci Pascal Matinal ! Je te dirai après le coucher ce soir
mprinfo Posté(e) le 18 avril 2015 Signaler Posté(e) le 18 avril 2015 dodo 0h00 a 06h00 comme dab lol tu peux faire des essais tu remplaces la ligne 20 if J_N == "Nuit" then par if J_N == "Jour" then comme cela tu peux tester le jour lol, il faudrait améliorer le code mais en ce moment pas trop le temps J'ai testé chez moi ça fonctionne tiens moi au courant
chrispec Posté(e) le 19 avril 2015 Auteur Signaler Posté(e) le 19 avril 2015 Bon .... ce soir pas de fermeture de volets ??? Je reprends depuis le début. J'ai une variable prédéfinie: J'ai deux scènes: Pour la scène "jour_nuit" comme code: --[[ %% autostart %% properties %% globals Jour_Nuit --]] ---------------------------------------------------------------------- -- Envoi d'un Push pour avertir que le box à démarrer ou redémarrer -- ---------------------------------------------------------------------- --local IdTel = 181 --local Message = string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R")) --fibaro:debug(Message) --fibaro:call(IdTel, "sendPush", Message) --------------------------------------------------- -- Mise a jour d'une variable global -- --------------------------------------------------- function UpdateVG(NomVG, Valeur) fibaro:debug("VariableGlobale = "..NomVG.." - Valeur = "..Valeur) fibaro:setGlobal(NomVG, Valeur); end ------------------------------------------------- -- Voir si une variable existe ou non -- -- By STEVEN -- ------------------------------------------------- function VericationVG(nom) if (fibaro:getGlobalValue(nom) == nil) then fibaro:debug("il faut cree la variable "..nom) fibaro:abort() else fibaro:debug("La variable existe le programme peut s'exécuter") end end ---------------------------------------------------------------------- -- Mise a jour de la variable VG Jour_Nuit au Démarrage de la Box -- -- Ou lors de la sauvegarde de la scène -- ---------------------------------------------------------------------- local OsHeure = os.date("%H:%M", os.time()) local NOMVG = "Jour_Nuit" VericationVG(NOMVG) -- verification de la VG existe local Lever = fibaro:getValue(1, "sunriseHour") local Coucher = fibaro:getValue(1, "sunsetHour") local Valeur = "Nuit" -- test si on est le jour ou la nuit if (OsHeure) >= Lever and (OsHeure) < Coucher then Valeur = "Jour" end UpdateVG(NOMVG, Valeur) -- mise a jour de la VG Jour_Nuit ---------------------------------------------------------------------- -- Controle si 1 Scène et déjà en cours -- ---------------------------------------------------------------------- local NbreScene = fibaro:countScenes() fibaro:debug("Nombre de scéne : "..NbreScene) if (NbreScene ~= 1) then; fibaro:abort(); end ---------------------------------------------------------------------- -- Test toute les minutes pour savoir si c'est jour ou nuit -- -- ---------------------------------------------------------------------- while true do OsHeure = os.date("%H:%M", os.time()) Lever = fibaro:getValue(1, "sunriseHour") Coucher = fibaro:getValue(1, "sunsetHour") -- Mise a jour de la VG Jour_Nuit -- if ( OsHeure == Lever ) or ( OsHeure == Coucher ) then NomMVG = "Jour_Nuit" if ( OsHeure == Lever ) then Valeur = "Jour" else Valeur = "Nuit" end UpdateVG(NomVG, Valeur) end fibaro:debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", Lever, Coucher)) fibaro:sleep(60*1000); end Avec son DEBUG: Pour la scène de fermeture des volets: --[[ %% autostart %% properties %% globals Jour_Nuit --]] local num = fibaro:countScenes () -- nombres d'instances en cours d'excution de la scene fibaro:debug("Nombre de scènes en cours = " ..num) if (num == 1) then local J_N = fibaro:getGlobalValue( "Jour_Nuit" ); fibaro:debug("Jour_Nuit = " ..J_N) -- Fermeture des volets des chambres et allumage lumieres rdc local Id = {} local IdValue = {} if J_N == "Nuit" then local Id = {16, 18, 20, 28, 34} -- id volets et lumieres local IdValue = {0, 0, 0, "turnOn", "turnOn"} -- Valeur 0=Fermer - 99 = Ouvert local VoletPorte = {22, 24, 26} -- Volet si porte fermée local Detecteur = {107, 115, 111} -- detecteur d'ouverture fibaro:debug("Nuit") end for i = 1,#Id do local TestName = fibaro:getName(Id[i]) local TestValue = fibaro:getValue(Id[i], "value") fibaro:debug(TestName) if IdValue[i] == "open" or IdValue[i] == "close" or IdValue[i] == "turnOn" or IdValue[i] == "turnOff" then fibaro:call(Id[i], IdValue[i]); else fibaro:call(Id[i], "setValue", IdValue[i]); -- Commande Module end -- porte avec detecteur if i <= #VoletPorte and (tonumber(fibaro:getValue(Detecteur[i], "value")) == 0 ) then fibaro:call(VoletPorte[i], "close"); fibaro:debug(fibaro:getName(Detecteur[i]).." - Status = "..fibaro:getValue(Detecteur[i], "value")) end end else fibaro:debug("Nombre de scènes en cours " ..num) end Son DEBUG: Où est l'erreur ?
mprinfo Posté(e) le 19 avril 2015 Signaler Posté(e) le 19 avril 2015 Ta scène jour nuit fonctionne Mais tu aurrais du plutot prendre celle de la page plus simple Envoyé avec mon SmartPhone
mprinfo Posté(e) le 19 avril 2015 Signaler Posté(e) le 19 avril 2015 Dans la scene que je t ai donné pour les volets tu as ajouté dans l entête le nom de la vg Jour_Nuit ? Envoyé avec mon SmartPhone
chrispec Posté(e) le 19 avril 2015 Auteur Signaler Posté(e) le 19 avril 2015 Bonsoir Pascal, Faut pas ?
mprinfo Posté(e) le 19 avril 2015 Signaler Posté(e) le 19 avril 2015 Si il la faut dans la scene des volets
Messages recommandés