pepite Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 @ced600f, oui un peu tordu lol Merci de ta réponse ;-) En fait c'est un peu ce que je fais avec la VG GEA_Octan Au 1er DC : --> si toutes les lampes allumées : eteindre lampe bureau, GEA_Octan = 1 Au 2eme DC : --> Si GEA_Octan = 1, extinction lampe PAPIER, GEA_Octan à 2 Au 3eme DC : --> SI GEA_Octan = 2, extinction lampes TV, GEA_OCTAN = 3 Au 4eme DC : --> si toutes les lampes OFF, allumage lampes TV Au 5eme DC, --> si GEA_Octan = 3, allumage lampe papier et GEA_Octan = 4 au 6eme DC --> si GEA_Octan = 4, allumage Bureau ;-) et remise de GEA_Octan à 0 Ca fonctionne jusqu'au 5eme DC, enfin presque, ca allume bien la lampe papier mais ne met pas GEA_Octan à 4 ;-) Donc le dernier DC (le 6eme) ne fonctionne pas.. Quid ? Je peux peut-etre faire sans variable et mettre en conditions si les lampes sont allumées ou non mais certains turnOn vont finir identique à certains turnOff et la BUG lol
ced600f Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Bizarre que cela ne fonctionne pas... Tu peux poster ton code ? Curiosité: A quoi cela te sert un tel fonctionnement ?
ced600f Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Par contre, pourquoi une différence entre 4° et 5° DC ? Tu testes comment ton quantième DC àce niveau là?
pepite Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Mon code est au-dessus de la page, je le reposte. -- Double Clic B1, rond plein -- GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_off}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 3}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 1}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 2}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_on}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 1}}) Entre le 4eme et 5eme, je teste avec une variable "eclairage_off' que j'utilise ailleurs Ce fonctionnement me permet : 1- de tester je ne l'ai pas depuis longtemps et je veux augmenter le nombre de scenarios possibles par bouton ;-), je ne dois pas etre doue, mais j'ai un peu de mal avec l'appui long et l'appui long relaché ;-). 2- d'essayer de rester WAF avec cette telecommande, facile a comprendre, en fonction de l'eclairage que tu veux tu doubles cliques sur le rond plein Par exemple, pour l'allumage/extinction de la TV, simple appui rond plein, si TV deja allumee : ca eteint TV et FreeboxPlayer, inversement, si TV eteinte allumage TV et freebox player ;-) 3- pour l'eclairage : sur le +, simple appui, j'ai mis : si tout est eteint : allume tout, si tout est allumé, eteint tout ;-) Ca augmente enormement le nombre de scenarios en fonction des conditions je trouve Cette telecommande je la trouve top, seul inconvenient, ce souvenir de ce que font les boutons et reussir a maitriser appui long/appui long relache..je suis une quiche ;-)
Steven Posté(e) le 18 février 2016 Auteur Signaler Posté(e) le 18 février 2016 Question : Lorsque tu as "GEA_Octan == 4" (1ère ligne de ton code), tu vas allumer la lumière du bureau .. donc TV, PAPIER et BUREAU seront allumé ? Si oui ... regarde la dernière ligne qui dit : Si tout est allumé (ce qui est le cas), on éteint de bureau et GEA_Octan = 1 Pour conclure, si GEA_Octan est à 4, tu vas allumer puis éteindre le bureau et passer en GEA_Octane = 1
pepite Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 LA réponse est OUI ;-) Pu..c'est sous mes yeux depuis hier soir, j'avais rien vu hihihi MERCI beaucoup MAITRE STEVEN :13: Je vais changer de condition voici, a tester ce soir !! -- Double Clic B1, rond plein -- GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_off}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 3}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 1}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 2}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 0}}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 1}})
Steven Posté(e) le 18 février 2016 Auteur Signaler Posté(e) le 18 février 2016 Lol ... exactement le même soucis la 1ère ligne met GEA_Octan à 0 se qui executera la dernière ligne C'est ça de vouloir faire des trucs tordus Je vais t'aider ... utilise des chiffres PAIRS lorsque tu est en tain d'allumer les lumières et des chiffres IMPAIRS lorsque tu les éteins. Je te ponds cela dans quelques minutes.
pepite Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Exact la meme ;-) je suis vraiment pas doue, merci @steven
Steven Posté(e) le 18 février 2016 Auteur Signaler Posté(e) le 18 février 2016 GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 6}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 0}}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 2}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 5}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 3}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 7}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 5}}) GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 6}}, -1, "", {{"Global", "GEA_Octan", 7}})
ced600f Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Et tout ce code réagit comment quand on allume manuellement une lampe éteinte Genre TV est éteinte, papier et bureau allumées (GEA_Octan=5) et j'allume manuellement la lampe TV ???
Steven Posté(e) le 18 février 2016 Auteur Signaler Posté(e) le 18 février 2016 Pour ma télécommande, j'ai préféré un script séparé. On comprend vite pourquoi :-)
pepite Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 certainement mal ;-) mais mon WAF est plutot du genre à oublier les interr des qu'elle peut faire autrement avec une telecommande, sa tablette ou son tel ;-) merci @steven a tester des ce soir, et peut-etre que je ferai aussi du separe pour la telecommande hihihi
cocolabombe0 Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Bonjour, j'ai trop d'intance avec mon petit code. Pouvez vous m'aider? GEA.add (277, -1, "déverrouillage porte") GEA.add (277, -1, "Verrouillage", {{"Inverse"}}) Je veux savoir chaque verrouillage et déverrouillage d'une porte. J'ai mis un micro switch sur le contact de ma serrure. J'ai aussi des soucis avec c'est que parfois, je vois affiché le message déverrouillage 3 fois de suite sans avoir de verrouillage entre.
soulac Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 Bonsoir messieurs Voila mon problème j'ai actuellement une scène GEA test dans lequel j'ai mit le code suivant : -- ================================================== -- CUISINE -- ================================================== -- Si déjà Allumé, Re-Allumage à 70% dès que détection mouvement sauf si module déjà a + de 64% (économie Z-Wave) GEA.add({id["D_MOUV_SALON"],{"Value+", id["SPOT_CUISINE"], 1},{"Value-", id["SPOT_CUISINE"],64}}, -1, "",{{"Value", id["SPOT_CUISINE"], 65}}) -- Après 10min on dimme la lampe à 34% si pas de mouvement local malampesam = GEA.add({"Value+", id["SPOT_CUISINE"],64}, 3*60, "",{{"Value", id["SPOT_CUISINE"], 54},{"Repeat"}}) -- Après 3 min on met la lampe à 65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 local malampesamdim = GEA.add({{"Value-", id["SPOT_CUISINE"],55},{"Value+", id["SPOT_CUISINE"], 1}}, 3*60,"",{{"Value", id["SPOT_CUISINE"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"}) -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA) GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim},{"Repeat"}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) -- ================================================== -- CHAMBRE PARENTAL -- ================================================== -- Si déjà Allumé, Re-Allumage à 65% dès que détection mouvement sauf si module déjà a + de 64% (économie Z-Wave) GEA.add({id["D_MOUV_PARENTAL"],{"Value+", id["LUSTRE_PARENTAL"], 1},{"Value-", id["LUSTRE_PARENTAL"],64}}, -1, "Allumage",{{"Value", id["LUSTRE_PARENTAL"], 65}}) -- Après 3min on dimme la lampe à 54% si pas de mouvement local malampechp = GEA.add({"Value+", id["LUSTRE_PARENTAL"],64}, 2*60, "Dim 54",{{"Value", id["LUSTRE_PARENTAL"], 54},{"Repeat"}}) -- Après 3 min on met la lampe à 65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 local malampechpdim = GEA.add({{"Value-", id["LUSTRE_PARENTAL"],55},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 1*60,"",{{"Value", id["LUSTRE_PARENTAL"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"}) -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim},{"Repeat"}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim}}) Mais voila cela ne fonctionne pas ensemble. Si je condamne la chambre la cuisine fonction si je condamne la cuisine la chambre fonctionne. Avez vous une ptite idée ?
pepite Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 @soulac, je le connais ce code ;-) t'as bien fait de t'en inspirer ;-) Quelle version dV4 ? 4.070 et 4.071 ? Dans une de ces 2 versions de firmware, les lignes avec 2 RestartTask posaient des soucis, fais 2 lignes pour tester !! et si tu fais un save, les 2 fonctionnent ? ;-) si oui, bienvenue dans la 4.0.70, sinon moi au 1er coup d'oeil, je vois rien de special. les experts peut-etre et le proprio du code original peut-etre verront mieux ce qui pourraient clocher
soulac Posté(e) le 18 février 2016 Signaler Posté(e) le 18 février 2016 @pepite, Malheureusement j'ai fait la mise a jour 4.70 pour voir ce qui avait fait avec le plugin HEOS DENON si j'avais su j'aurais du me casser une jambe . En ce qui concerne le code oui c'est celui de sebcbien qui d’ailleurs ma bien aidé car je le fait avec les yeux de chez fibaro Je vais tester ta solution avec le code suivant si j'ai bien compris. GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechp},{"Repeat"}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechpdim},{"Repeat"}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) -- GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechpdim}})
pepite Posté(e) le 19 février 2016 Signaler Posté(e) le 19 février 2016 @steven et @ced : bon merci d'abord steven, ca fonctionne nickel si on allume pas de lampes entre temps..comme suspecté, des quon allume une lampe entre temps ben faut un certain nombre de double clics pour remettre d'aplomb hihihi Vais attendre l'effet WAF, j'ai teste tout seul hier soir ;-) Si le WAf est contre je ferai une scene propre à la telecommande ;-) une idee pour faire ca propre ? @cocolacombe0 Si tu veux recevoir les push à chaque fois, heuuuu tu vas toujours te retrouver avec trop d'instances. tu ne peux pas rajouter quelques conditions ? @soulac ah ben t'es mieux avec tes jambes ;-) sinon question bete : tu as bien une autre variable "GEA_Tasks" pour ton GEa de test ?
ced600f Posté(e) le 19 février 2016 Signaler Posté(e) le 19 février 2016 @pepite: désolé ma femme est plutôt du genre à aimer les choses simples. Du coups, j'ai mis des détecteurs de mouvement et ce sont eux qui allume la lumière en fonction de l'heure (ou de la luminosité pour la pièce de vie principale) et celles-ci s'éteignent en cas de non détection au bout d'un certains temps. Je suis sà»r qu'elle a oublié où sont les interrupteurs depuis J'avoue que pour être waf, j'ai galéré: entre les fois où les lumières s'allumaient le jour aussi et ne s'éteignent plus (normal vu qu'il y a toujours détection de mouvement) ou alors la lumière qui sert de veilleuse pour les enfants qui s'éteint la nuit et les enfants qui se mettent à pleurer.... Et le simple clic sur ta télécommande ? Il lance un scénario particulier ? As-tu assigné une fonction à chacun de tes boutons ? Tu as combien de boutons/possibilités ? 1
Steven Posté(e) le 19 février 2016 Auteur Signaler Posté(e) le 19 février 2016 @steven et @ced : une idee pour faire ca propre ? Une petite idée mais pas testée ni validée et réalisée à l'aveugle. --[[ %% properties 412 sceneActivation %% globals --]] local varGlobal = "Octan_Sens" -- Lecture de l'état des lampes au démarrage de cette scène local status { bureau = fibaro:getValue(id["ECLAIRAGE_BUREAU"]) > 0, papier = fibaro:getValue(id["ECLAIRAGE_PAPIER"]) > 0, tv = fibaro:getValue(id["ECLAIRAGE_TV"]) > 0, etat = 0 } -- On détermine l'état actuel : -- 0 : tout est éteint -- 1 : 1 lampe allumée -- 11 : 2 lampes allumées -- 111 : 3 lampes allumées if (status["tv"] and status["papier"] and status["bureau"]) then status["etat"] = 111 end if (status["position"] == 0 and status["tv"] and status["papier"]) then status["etat"] = 11 end if (status["position"] == 0 and status["tv"]) then status["etat"] = 1 end if (status["etat"] == 0) then --- tout est éteint, on passe mode "allumage des lampes" fibaro:setGlobal(varGlobal, "turnOn") else if (status["etat"] == 111) then --- tout est allumé, on passe mode "extinction des lampes" fibaro:setGlobal(varGlobal, "turnOff") end local sens = fibaro:getGlobalValue(varGlobal) or "turnOn" if (sens == "turnOn" or sens == "") then if (status["etat"] == 0) then fibaro:call(id["ECLAIRAGE_TV"], "turnOn") end if (status["etat"] == 1) then fibaro:call(id["ECLAIRAGE_PAPIER"], "turnOn") end if (status["etat"] == 11) then fibaro:call(id["ECLAIRAGE_BUREAU"], "turnOn") end else if (status["etat"] == 111) then fibaro:call(id["ECLAIRAGE_BUREAU"], "turnOff") end if (status["etat"] == 11) then fibaro:call(id["ECLAIRAGE_PAPIER"], "turnOff") end if (status["etat"] == 1) then fibaro:call(id["ECLAIRAGE_TV"], "turnOff") end end fibaro:debug("Etat " .. status["etat"] .. " - Sens : " .. sens)
pepite Posté(e) le 19 février 2016 Signaler Posté(e) le 19 février 2016 @ced oui moi aussi elle est plutot simple pour ce genre de choses, mais le souci est que la maison est en construction, enfin l'etage, donc je n'ai aps encore soit achete les modules dont j'ai besoin soit pas tout reinstalle ;-) j'ai achete la NODON Octan Remote : elle a 4 boutons, 4 valeurs par boutons, soit 16 scenarios possibles, mais en fait on peut en faire plus en jouant avec les conditions ;-) Sauf qu'il y a 2 valeurs que je ne maitrise pas encore, c'est l'appui long et l'appui long relaché, quelle galere ;-) @steven encore mega merci, ce qui est fort c'est que j'arrive presque à comprendre le code, mais j'aurais mis 6 mois à l'ecrire lol le temps de trouver la logique hihihi evidemment des questions : je comprends pas : - status["position"], il est pas dans la variable declarée status et pourquoi le "or "turnOn" ? local sens = fibaro:getGlobalValue(varGlobal) or "turnOn" merci beaucoup beaucoup le pied, reste plus qu'a creer une scene dédiée pour la telecommande et ses differentes valeurs, vous aviez raison des le debut ;-)
Steven Posté(e) le 19 février 2016 Auteur Signaler Posté(e) le 19 février 2016 Oups.. status["position"] doit être remplacé par status["etat"] ... j'ai remplacé la variable par la suite pour être plus parlant mais j'ai oublié de le faire à quelques endroits. pour le or "turnOn" si la commande fibaro:getGlobaleValue(varGlobal) retourne nul alors la variable "sens" prendra la valeur "turnOn" c'est comme si tu donnais une valeur par défaut au lieu d'un nul. local sens = nil or "turnOn" --- donne "turnOn"
Steven Posté(e) le 19 février 2016 Auteur Signaler Posté(e) le 19 février 2016 Attention ce script va s'exécuter peux importe le bouton que tu appuies. Il faudrait ajouter ces quelques lignes au début du script. local action = tonumber(fibaro:getValue(412, "sceneActivation")) if (action != 13) then fibaro:abort() end
Bobobull Posté(e) le 19 février 2016 Signaler Posté(e) le 19 février 2016 Bonjour, toujours dans mes conversion LUA\GEA Je pilote des philips HUE via des virtual devices (que je trouve nettement mieux que les plugins). Du coup, je ne trouve pas comment utiliser l'état. Dans le VD il y a une étiquette qui passe de ON à OFF et ça me serait bien utilie dans mon code, le but étant d'allumer en fonction de la luminosité mais uniquement si c'est éteins. GEA.add ( { {"Value-", id["LUXMETRE_DINNER"], 30} , {"Value", id["HUE_VIN_VD"], 0} } , -1 , "" , { {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_RGB_ARMOIRE_VD"],3, 40} ) Donc avec "value" ca ne passe pas, j'ai vu un "label" dans le wiki mais il me semble que c'est pour définir la valeur. Rien pour la lire ? Bon si c'est pas possible, je peux toujours utiliser le plugin pour remonter l'état mais je pensais pouvoir les virer. Merci de votre aide.
Steven Posté(e) le 19 février 2016 Auteur Signaler Posté(e) le 19 février 2016 Tu peux faire ainsi : GEA.add ( { {"Value-", id["LUXMETRE_DINNER"], 30} , {"Label", id["HUE_VIN_VD"], "label1", "OFF"} } , -1 , "" , { {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_RGB_ARMOIRE_VD"],3, 40} ) Attention au nom du label "label1". {“Labelâ€, <id_vd>, <nom label>, <contenu>} Si la valeur du label est égale à X
Messages recommandés