sebcbien Posté(e) le 7 mars 2015 Signaler Partager Posté(e) le 7 mars 2015 Petit script permettant de se réveiller en douceur. J'avais fait ce script il y a déjà pas mal de temps, il me permettait de déclencher l'allumage en douceur dans ma chambre et dans celle des enfant dès que le réveil sonnait. Avec le script ALARM de Steven et son GEA, j'en ai profité pour l'améliorer. Maintenant le script se lance soit via mon révei, soit via le Virtual Device ALARM de Steven et GEA Ce script permet de: - choisir la durée de l'allumage des lampes (en minutes) - détecte ces conditions individuellement pour chaque chambre: - Si une lampe est déjà allumée, elle est exclue de l'allumage (évite de passer de 100% à 5% lorsque le script démarre et que l'on est déjà levé) - Si on modifie une lampe elle est exclue (extinction ou allumage à 100% par exemple) - Si toutes les lampes ont été modifiées, fin du script - allumer mon routeur Wifi de l'étage (qui est coupé s'il n'y a pas de mouvement détecté pendant 30 minutes) Depuis ce script, je gagne 15 minutes au lit le matin, plus besoin de réveil qui gueule et les enfants sont réveillés en douceur et de bonne humeur (et moi aussi ) Le voici: Pour ajouter ou supprimer des lampes, je pense que le script parle de lui mème, il suffit de supprimer/modifier/ajouter les lignes Question copyright, je pense l'avoir fait complètement seul (il y a longtemps que je l'ai, et franchement je ne me souvient plus de sa genèse) --[[ %% properties 1277 value %% globals --]] -------------------------------------------------- -- Sweet Wakeup -- Gradually dim up lights, excluding already on lights or modified during the wakeup -- Sebastien Jauquet -- Mars 2015 -------------------------------------------------- local id = { LAMPE_CH_THOMAS = 41, LAMPE_DRESSING = 42, LAMPE_CH_PARENTS = 47, LAMPE_CH_EMILIEN = 58, REVEIL_1_SEB = 1277, PRISE_ROUTEUR_1ER = 22 } local cycle = 30 --duration (in minutes) of the complete cycle of wakeup local dim = 5 -- dimming starting value (5=5%) local startSource = fibaro:getSourceTrigger(); -- launch script if started trough device in the header or "manually"/trough an other script if (( tonumber(fibaro:getValue(id["REVEIL_1_SEB"], "value")) > 0 ) or startSource["type"] == "other") then -- Always execute actions on this/those device(s): fibaro:call(id["PRISE_ROUTEUR_1ER"], "turnOn"); -- If one light is not turned off, disable it from the wakeup loop if(tonumber(fibaro:getValue(id["LAMPE_CH_THOMAS"], "value")) ~= 0 ) then id["LAMPE_CH_THOMAS"] = 0; fibaro:debug("LAMPE_CH_THOMAS Desactivated"); end if(tonumber(fibaro:getValue(id["LAMPE_DRESSING"], "value")) ~= 0 ) then id["LAMPE_DRESSING"] = 0; fibaro:debug("LAMPE_DRESSING Desactivated"); end if(tonumber(fibaro:getValue(id["LAMPE_CH_PARENTS"], "value")) ~= 0 ) then id["LAMPE_CH_PARENTS"] = 0; fibaro:debug("LAMPE_CH_PARENTS Desactivated"); end if(tonumber(fibaro:getValue(id["LAMPE_CH_EMILIEN"], "value")) ~= 0 ) then id["LAMPE_CH_EMILIEN"] = 0; fibaro:debug("LAMPE_CH_EMILIEN Desactivated"); end -- Main wakeup loop while dim < 91 do -- set dim value to all dimmers (excluding disabled: Id["xxx"] not equal to 0) if (id["LAMPE_CH_THOMAS"] ~= 0) then fibaro:call(id["LAMPE_CH_THOMAS"], "setValue", dim) end if (id["LAMPE_DRESSING"] ~= 0) then fibaro:call(id["LAMPE_DRESSING"], "setValue", dim) end if (id["LAMPE_CH_PARENTS"] ~= 0) then fibaro:call(id["LAMPE_CH_PARENTS"], "setValue", dim) end if (id["LAMPE_CH_EMILIEN"] ~= 0) then fibaro:call(id["LAMPE_CH_EMILIEN"], "setValue", dim) end fibaro:debug("Set Dimmers Value at: " .. dim) fibaro:sleep(cycle*3000); -- Check if dimmer value modified, then disable it from the wakeup loop if ((id["LAMPE_CH_THOMAS"]) ~= 0) then if((tonumber(fibaro:getValue(id["LAMPE_CH_THOMAS"], "value")) - dim) ~= 0 ) then id["LAMPE_CH_THOMAS"] = 0; fibaro:debug("LAMPE_CH_THOMAS Desactivated"); end; end; if ((id["LAMPE_DRESSING"]) ~= 0) then if((tonumber(fibaro:getValue(id["LAMPE_DRESSING"], "value")) - dim) ~= 0 ) then id["LAMPE_DRESSING"] = 0; fibaro:debug("LAMPE_DRESSING Desactivated"); end; end; if ((id["LAMPE_CH_PARENTS"]) ~= 0) then if((tonumber(fibaro:getValue(id["LAMPE_CH_PARENTS"], "value")) - dim) ~= 0 ) then id["LAMPE_CH_PARENTS"] = 0; fibaro:debug("LAMPE_CH_PARENTS Desactivated"); end; end; if ((id["LAMPE_CH_EMILIEN"]) ~= 0) then if((tonumber(fibaro:getValue(id["LAMPE_CH_EMILIEN"], "value")) - dim) ~= 0 ) then id["LAMPE_CH_EMILIEN"] = 0; fibaro:debug("LAMPE_CH_EMILIEN Desactivated"); end; end; if id["LAMPE_CH_THOMAS"] == 0 and id["LAMPE_DRESSING"] == 0 and id["LAMPE_CH_PARENTS"] == 0 and id["LAMPE_CH_EMILIEN"] == 0 then fibaro:debug("All Dimmer Values Modified, stopping script"); fibaro:abort(); end dim = dim +5 end -- end of wakeup, set dimmers to max value fibaro:call(id["LAMPE_CH_THOMAS"], "setValue", 99); fibaro:call(id["LAMPE_DRESSING"], "setValue", 99); fibaro:call(id["LAMPE_CH_PARENTS"], "setValue", 99); fibaro:call(id["LAMPE_CH_EMILIEN"], "setValue", 99); end 5 Lien vers le commentaire Partager sur d’autres sites More sharing options...
megabubu Posté(e) le 7 mars 2015 Signaler Partager Posté(e) le 7 mars 2015 Merci du partage :-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
chrispec Posté(e) le 9 mars 2015 Signaler Partager Posté(e) le 9 mars 2015 Top! Mais comme j'ai mis des FGS221 et lampes hue dans les chambres... du coup ... faut adapter ton scripts ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 9 mars 2015 Auteur Signaler Partager Posté(e) le 9 mars 2015 Du coup c'est moins soft le réveil douceur :-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
chrispec Posté(e) le 9 mars 2015 Signaler Partager Posté(e) le 9 mars 2015 Les FGS221 ... c'est pour madame (WAF) ... voulant être sûre que les lumières soient éteintes ... Les Hue sont àcouleur et intensité variables ... donc si soft ... Moins soft ... retravailler ton code ... mais il a le mérite de donner des idées et de faciliter l'architecture du code ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 9 mars 2015 Auteur Signaler Partager Posté(e) le 9 mars 2015 Ahhh le WAF, très important. Je fais toujours tout valider avant par la chef et je pense que ça transparaît dans mes codes Si tu veux marier le meilleur des mondes, pour être sur que tes lampes soient éteintes, il suffit de configurer les fgs avec une valeur minimum de 30% par exemple. Ainsi plus de doute. Lien vers le commentaire Partager sur d’autres sites More sharing options...
D-GK Posté(e) le 9 mars 2015 Signaler Partager Posté(e) le 9 mars 2015 Merci pour le partage. Désolé si ma question est bête mais je débute, j'ai bien compris le code (ça aide d'être informaticien) mais comment gères-tu l'heure du réveil ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 9 mars 2015 Auteur Signaler Partager Posté(e) le 9 mars 2015 Deux solutions: - J'ai un module universel monté dans mon réveil (id 1277) qui est mis dans l'entête et qui lance le script. - Et j'utilise aussi le module alarm de Steven, pour ça, voir le fil du support gea. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 9 mars 2015 Signaler Partager Posté(e) le 9 mars 2015 Super, Bon j'ai pas d'ampules dimmables dans la chambre, mois soft le reveil hihih Sinon je l'utiliserais avec GEA Alarm, c'est plutot WAF, par contre des que le reveil des 2 n'est pas à la mee heure...heuuu je pense queje vais l'entendre le WAF mode hihih Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 9 mars 2015 Auteur Signaler Partager Posté(e) le 9 mars 2015 Pour ça moi j'ai mis un wallplug "lapin". Chez moi ils ont tendance àse réveiller à6h le week-end... Donc "tant que le rond làil n'est pas vert, tu ne vient pas réveiller papa ou Maman :-p et j'ai deux programmation pour les deux enfants 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
trainkill666 Posté(e) le 9 mars 2015 Signaler Partager Posté(e) le 9 mars 2015 Voici une proposition de modification de ton programme : Je ne peux pas le tester car je n'ai pas de dimmer, il doit donc y avoir quelques coquilles. --[[ %% properties 1277 value %% globals --]] ---------------------------------------------------------------------------- --DECLARATION DES VARIABLES ET FONCTIONS local variateurs = { "LAMPE_CH_THOMAS", "LAMPE_DRESSING", "LAMPE_CH_PARENTS", "LAMPE_CH_EMILIEN", } local sauvariateurs = {} local idappareils = { LAMPE_CH_THOMAS = 41, LAMPE_DRESSING = 42, LAMPE_CH_PARENTS = 47, LAMPE_CH_EMILIEN = 58, REVEIL_1_SEB = 1277, PRISE_ROUTEUR_1ER = 22 } local cycle = 30 --duration (in minutes) of the complete cycle of wakeup local dim = 5 -- dimming starting value (5=5%) --getValue local recupvaleur = function (nom, valeur) return tonumber(fibaro:getValue(idappareils[nom], valeur)) end --action sur 1 appareil sans variateur local actionmodule = function (nom, etat) fibaro:call(idappareils[nom], etat) end --action sur tous les appareils avec variateur local actionmodules = function(liste, etat) for index,valeur in ipairs(liste) do fibaro:call(idappareils[valeur], "setValue", etat) end end --suppression du variateur actif local suppressionmodule = function(chiffrecompare) for index,valeur in ipairs(variateurs) do if recupvaleur(valeur, "value") - chiffrecompare ~= 0 then fibaro:debug(valeur .. " Desactivated") table.insert(sauvariateurs, valeur) table.remove(variateurs, index) end end end ---------------------------------------------------------------------------- -- launch script if started trough device in the header or "manually"/trough an other script if recupvaleur("REVEIL_1_SEB", "value") > 0 or startSource["type"] == "other") then -- Always execute actions on this/those device(s): actionmodule("PRISE_ROUTEUR_1ER", "turnOn") -- If one light is not turned off, disable it from the wakeup loop suppressionmodule(0) -- Main wakeup loop while dim < 91 do -- set dim value to all dimmers actionmodules(variateurs, dim) fibaro:debug("Set Dimmers Value at: " .. dim) fibaro:sleep(cycle*3000); -- Check if dimmer value modified, then disable it from the wakeup loop suppressionmodule(dim) if variateurs[1] == nil then fibaro:debug("All Dimmer Values Modified, stopping script") fibaro:abort() end dim = dim +5 end -- end of wakeup, set dimmers to max value actionmodules(sauvariateurs, 99) end Il suffit simplement de modifier les tables variateurs et idappareils pour ajouter et supprimer ou renommer des dimmers. Soyez indulgents, je suis débutant en Lua. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 9 mars 2015 Auteur Signaler Partager Posté(e) le 9 mars 2015 Joli ! Je n'avais pas eu "le courage" de faire ça avec des array. Ceci dit je n'ai pas trop analysé le code, avec tapatalk ça ne le fait pas trop Et je ne pourrai pas tester tout de suite car je suis en voyage pour le moment et si je me plante àdistance ma femme me crucifiera àmon retour Je testerai ça ce week-end. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 9 mars 2015 Signaler Partager Posté(e) le 9 mars 2015 @sebcbien, Marrant tes rabbitplug,une initiation au code de la route. Mais les enfants peuvent quand même vous réveiller s'ils ne sont pas bien (malade) ou c'est aussi géré par la domotique? Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 9 mars 2015 Auteur Signaler Partager Posté(e) le 9 mars 2015 Ah bah non, ils doivent envoyer un fax au service de gardiennage. Sinon, on leur a dit que on les remettrais en vente sur eBay 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 10 mars 2015 Signaler Partager Posté(e) le 10 mars 2015 C' est une alternative à celui-la "Simulateur d'aube paramètrable" . Tu pourrais implémenter les courbes pour avoir une progression (transition) plus douce Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 10 mars 2015 Auteur Signaler Partager Posté(e) le 10 mars 2015 Ah oui je me souviens être tombé dessus à l'époque ! Ceci dit, je dois dire que je n'en ressent pas le besoin, je trouve que une réponse linéaire sur une longue durée (30 minutes) me convient bien. Je suis du genre à me réveiller avec la tête dans le c*l et les yeux très sensibles à la luminosité. Je me réveille en général quand la lampe atteint 30-40%, je sors de mon lit et j'apprécie cette "faible" luminosité. il reste encore 15-20 minutes pour arriver au max, et là je serai bien réveillé. Si je trouve du temps, je pourrais probablement ajouter ces courbes, si il y a de la demande. Il faut d'abord que je teste la proposition de trainkill666 (un peu morbide le pseudo ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
trainkill666 Posté(e) le 10 mars 2015 Signaler Partager Posté(e) le 10 mars 2015 @sebcbien : mon pseudo est "un reste" de mes longues parties en multiplayer sur PC , il y a presque 20 ans, sur Unreal Tournament™ , Medal of Honor™ ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 10 mars 2015 Auteur Signaler Partager Posté(e) le 10 mars 2015 Ah j'étais pas mauvais non plus. C'est le dernier jeu sur lequel j'ai perdu de trop nombreuses heures, ... depuis je suis vacciné Lien vers le commentaire Partager sur d’autres sites More sharing options...
jpr105 Posté(e) le 17 mars 2015 Signaler Partager Posté(e) le 17 mars 2015 Bonjour Sebcbien, Je viens de tomber sur ton post et j'ai été attiré par cette phrase ... - allumer mon routeur Wifi de l'étage (qui est coupé s'il n'y a pas de mouvement détecté pendant 30 minutes) Peux-tu m'en dire plus à ce propos ? Pour ma part je souhaiterais créer un module virtuel de type ON/OFF qui me permettrait d'activer ou non mon réseau wifi INVITÉ. à‡a ne sert à rien de le laisser tourner lorsqu'on n'a pas d'invités à la maison ... on prend assez d'ondes comme ça mon bon Monsieur Mon routeur est un ASUS RT-AC68U et je voudrais bien le piloter via requêtes HTTP mais je n'ai rien trouvé en ce sens. Des pistes ??? Merci d'avance et bonne journée. Jean-Paul Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 18 mars 2015 Auteur Signaler Partager Posté(e) le 18 mars 2015 En fait j'ai acheté un petit point d'accès wifi en POE. (TP-Link TL-WA801ND - 32€) Les injecteurs POE se trouvent dans mon patch panel réseau dans ma remise. J'ai des injecteurs POE pour mes caméras intérieures, accesspoint wifi etc. Les alimentations de ces injecteurs sont sur une multiprise greenwave Si je veux allumer mon point d'accès wifi de l'étage, il me suffit de commander la prise 3 de la greenwave. Et ça marche très bien et discrétos Lien vers le commentaire Partager sur d’autres sites More sharing options...
tim974 Posté(e) le 2 août 2016 Signaler Partager Posté(e) le 2 août 2016 En modifiant le code en mettant : dim = dim -5 On peut crée un simulateur de "coucher de soleil"? Pour dormir avec la lumières qui s'éteint progressivement. ps: dommage qu'on ne trouve plus la multiprise greenwave, j'en aurais pris quelques une... Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 4 août 2016 Auteur Signaler Partager Posté(e) le 4 août 2016 salut @tim974, alors, tu as essayé ? ça marche ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fred.domotique Posté(e) le 14 juin 2022 Signaler Partager Posté(e) le 14 juin 2022 Salut Sebcbien, Je déterre ce vieux post.. Est ce que quelqu'un à déjà fait une adaptation d'un simulateur d'aube sur HC3 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés