sebcbien Posté(e) le 9 octobre 2016 Signaler Posté(e) le 9 octobre 2016 Bonjour, Petit partage, un VD et quelques lignes GEA pour activer/désactiver l'éclairage automatique chez moi. J'avais déjà implémenté la possibilité d'activer un mode "manuel" via un VD et 3 boutons (Automatique / Manuel / Manuel pendant 3H) Ce mode manuel était utilisé dans GEA de la manière suivante: local estHouse_Manuel = {"Global", "House_Mode", "Manual"} local estNotHouse_Manuel = {"Global", "House_Mode", "Auto|Scheduler"} GEA.add({{"Value", id2["SAM_MVT"],1},estNotHouse_Manuel}, -1, "",{{"turnOn", id2["SALLE_A_MANGER"]}}) Problème, pour activer ce mode il fallait sortir le téléphone de sa poche, pas WAF du tout et pas pratique (mon mantra en domotique: si t'a besoin de ton téléphone pour gérer ta domotique -> FAIL) Voici la solution mà»rement réfléchie: - Un interrupteur mural (ils ont l'avantage de ne pas se perdre et d'être proches ) - Un Virtual Device qui sert aussi de Variable Globale - GEA - TTS pour le feedback J'ai donc activé le paramètre 41 (Scène activation sur un FGD) et j'utilise un long press sur S2 pour basculer du mode AUTO en Manuel et vice-versa Dans GEA, je détecte cet appui long et je clique sur le bouton correspondant du VD GEA: 1894 sceneActivation 2139 ui.ModeRez.value local estLumRez_Auto = {"Label", id2["MODES_AUTO_MANUEL"], "ModeRez", "Automatique"} local estLum1er_Auto = {"Label", id2["MODES_AUTO_MANUEL"], "Mode1er", "Automatique"} local estLumGarage_Auto = {"Label", id2["MODES_AUTO_MANUEL"], "ModeGarage", "Automatique"} ----------- GESTION MODES AUTO/MANU ----------- -- Bascule mode éclairage actuel GEA.add({{"SceneActivation", id2["POUSSOIRS_HAUT"], 12}}, -1, "Switch changing Rez Auto/Manuel Mode at #time#",{{"VirtualDevice", id2["MODES_AUTO_MANUEL"], 5}}) --Annonce TTS du Mode sauf si en passage en mode Away ou Night_All_Off GEA.add({{"Label", id2["MODES_AUTO_MANUEL"], "ModeRez", ""},estNotAwayOrNigh_All_Off}, -1, "Eclairage Rez Set to Mode: #value# at #time#", {{"Inverse"},{"Label", id2["SONOS_SAY_IT"], "Message", "éclairage ré en mode #value#."},TTS_Default}) Exemple d'utilisation: - Si un soir on veut faire un jeu de nuit avec les enfants, un simple appuy sur l'interrupteur va annoncer dans les SONOS que le mode automatique à été désactivé et plus aucune lampe ne s'allumera automatiquement. - Si mon frère passe faire un baby sitting et veut regarder son film dans le noir, il peut activer le mode lui même. - Si un matin on veut profiter de la lumière du lever de soleil sans lampes Exemple de ligne GEA qui n'allume les lampes que si le mode est en auto: GEA.add({{"Value", id2["SAM_MVT"],1},estLumRez_Auto }, -1, "",{{"turnOn", id2["SALLE_A_MANGER"]}}) A chaque fois que l'alarme est mise ou que le mode nuit est activé, GEA me remet tout en automatique: ------------ WHEN AT HOME DO------------------- GEA.add(estAt_Home, -1, "", { estLumRez_Auto, estLum1er_Auto, estLumGarage_Auto }) A partir d'un autre VD, j'ai 3 boutons - Forcer tout en automatique - Manuel - Manuel pour une durée de 3H puis retour en mode automatique Bouton tout Manuel: local selfId = fibaro:getSelfId() local NewState = "Manuel" local id2 = { --Maison (Global) MODES_AUTO_MANUEL = 2139, } fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeRez.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.Mode1er.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeGarage.value", NewState); fibaro:call(selfId, "setProperty", "ui.HouseMode.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.LastChange.value", "Tout "..NewState.." à "..os.date("%H:%M")); fibaro:debug(os.date("%a %d/%m", os.time()).." Set all modes to "..NewState); Bouton tout Auto: local selfId = fibaro:getSelfId() local NewState = "Automatique" local id2 = { --Maison (Global) MODES_AUTO_MANUEL = 2139, } fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeRez.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.Mode1er.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeGarage.value", NewState); fibaro:call(selfId, "setProperty", "ui.HouseMode.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.LastChange.value", "Tout "..NewState.." à "..os.date("%H:%M")); fibaro:debug(os.date("%a %d/%m", os.time()).." Set all modes to "..NewState); Bouton manuel pour une durée de 3H (puis retour en mode automatique si tout est toujours en manuel, donc si personne n'a appuyé sur le bouton): local selfId = fibaro:getSelfId() local NewState = "Manuel" local id2 = { --Maison (Global) MODES_AUTO_MANUEL = 2139, } fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeRez.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.Mode1er.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeGarage.value", NewState); fibaro:call(selfId, "setProperty", "ui.HouseMode.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.LastChange.value", "Tout "..NewState.." pour 3H à "..os.date("%H:%M")); fibaro:debug(os.date("%a %d/%m", os.time()).." Set all modes to "..NewState.." and wait 3H"); -- sleep 3H: --fibaro:sleep(10*1000) fibaro:sleep(60*60*1000) fibaro:debug(os.date("%a %d/%m", os.time()).." 1H Done") fibaro:sleep(60*60*1000) fibaro:debug(os.date("%a %d/%m", os.time()).." 2H Done") fibaro:sleep(60*60*1000) fibaro:debug(os.date("%a %d/%m", os.time()).." 3H Done") if fibaro:getValue(id2["MODES_AUTO_MANUEL"], "ui.ModeRez.value") == "Manuel" and fibaro:getValue(id2["MODES_AUTO_MANUEL"], "ui.Mode1er.value") == "Manuel" and fibaro:getValue(id2["MODES_AUTO_MANUEL"], "ui.ModeGarage.value") == "Manuel" then NewState = "Automatique" fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeRez.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.Mode1er.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.ModeGarage.value", NewState); fibaro:call(selfId, "setProperty", "ui.HouseMode.value", NewState); fibaro:call(id2["MODES_AUTO_MANUEL"], "setProperty", "ui.LastChange.value", "Tout "..NewState.." à "..os.date("%H:%M")); fibaro:debug(os.date("%a %d/%m", os.time()).." Set all modes to "..NewState); end fibaro:debug(os.date("%a %d/%m", os.time()).." Time's up set mode Auto") --fibaro:setGlobal("House_Mode", "Scheduler") Voilà un petit apperçu et un bon cas d'utilisation de LABELS au lieu de VG Voici le VD: Et voici les icônes Modes_Auto-Manuel.vfib 3
Nico Posté(e) le 9 octobre 2016 Signaler Posté(e) le 9 octobre 2016 Je n'en ai pas le besoin pour le moment (Tout ce qui est en auto l'est en continu et pas de besoin de la basucler en manuel, mais cela viendra un jour je pense, comme pour le garage), mais très propre au niveau rendu !
sebcbien Posté(e) le 9 octobre 2016 Auteur Signaler Posté(e) le 9 octobre 2016 Effectivement ça arrive rarement si l'automatisme est bien pensé, mais pouvoir déroger à la règle facilement est important, sinon ça donne des - "Je voulais lire tranquille mon livre avec une petite lampe et cette PUT*IN de lampe plafonier s'allumait tout le temps." Ou mon frère (baby-sitter)qui m'appelle sur mon GSM au cinoche car ces - "PUTA*N de lampes du salon s'allument tout le temps et que je veux regarder mon film dans le noir" ... comme les baby-sitter n'ont pas l'application fibaro sur leur smartphone je dois le faire à distance. Donc oui c'est rare mais ça peut "tout gâcher". Bon tuto aussi pour les LABELS des VD
pepite Posté(e) le 9 octobre 2016 Signaler Posté(e) le 9 octobre 2016 Yes, superbe @sebcbien, Oui ca c'est bon, en gestion LABEL ;-) TOP, bonne idée, a reflechir mais bien au ca ou pour le passage en manuel si jamais.. a voir si j'ai un FGD qui traine qui ne fait pas deja du long press ;-) bon vous me direz je n'ai jamais joue avec S2, la j'ai mis un FGD212 pour dimmer..donc snif ou alors j'ai encore rate qqch :-(
sebcbien Posté(e) le 9 octobre 2016 Auteur Signaler Posté(e) le 9 octobre 2016 ?? Tu as bien un s2 quasi avec tous les modules fibaro. Sent from my Note4
pepite Posté(e) le 9 octobre 2016 Signaler Posté(e) le 9 octobre 2016 yes, en fait je viens de le faire dans les toilettes, j'ai mis un interr simple, suis c...j'aurais du mettre un double..Faudrait que je prenne le reflexe de mettre des doubles
Nico Posté(e) le 9 octobre 2016 Signaler Posté(e) le 9 octobre 2016 Yes, les labels des VDs, j'avais fait plus que ça à un moment, quand on en avait discuté pour faire une passerelle avec la Zibase pour mon alarme. Depuis avec les fake devices, j'ai fais le ménage, mais je fais comme ça dès que possible. Sinon moi dans les passages, le souci c'est que je n'ai mis aucun interupteur, que du sans fil, choix délibéré. Car j'ai tellement de portes, que je ne voulais pas d'inter à chaque porte, du coup j'ai fais très simple, je n'en ai pas mis :) Mais pour le garage, je cherche encore ce que je vais faire. Soit ta solution, soit un petit script pour gérer l'allumage depuis l'inter qui bloque la coupure par détecteur, soit ton VD qui me plait bien. De même pour la cour tient ! 1
Cardane Posté(e) le 10 octobre 2016 Signaler Posté(e) le 10 octobre 2016 @sebcbien, super ton VD... exactement ce que je voulais faire pour les mêmes raisons... me suis encore fait avoir hier soir en travaillant dans le garage et cette foutue commande GEA qui éteint la lampe après 5 minutes... ... tu aurais aussi les icônes que tu utilises dans ton VD ?
q.philippe Posté(e) le 10 octobre 2016 Signaler Posté(e) le 10 octobre 2016 salut j'ai fais cela (sans se rendu) pour la fermeture baie . si je veux la baie ouverte plus tard que prévu (jardinage tardif), max a une heure défini je passe par dessus manuel. ( idem pour la détection mouvement et l'éclairage ) pour un mode manuel. après c'est un module type variables qui te reprend toutes tes variantes mode. (mode baie, mode détection,mode présence lolol)
sebcbien Posté(e) le 10 octobre 2016 Auteur Signaler Posté(e) le 10 octobre 2016 @cardane, sorry j'ai oublié, je fais ça ce soir quand je rentre. je les ai améliorées, le switch est un peu plus visible @q.philippe pour une seule pièce et une seule lampe et si tu utilises des dimers, il y a une autre méthode: en gros: avec GEA: Sur détection de mouvement, allumage à 98% si à 98% depuis plus de X minutes et pas de mouvement -> extinction (avec mise à 99% juste avant) Donc en cas d'allumage manuel (à 99%) il n'y aura pas de timeout Si la lampe est déjà allumée automatiquement (à 98%) un double click sur le poussoir fera passer le dimer à 99% et donc désactivera le timeout Pour des exemples, voir dans le showroom gea V2 (dans ma signature)
Cardane Posté(e) le 10 octobre 2016 Signaler Posté(e) le 10 octobre 2016 merci sebcbien... deux petites questions, comme je ne suis pas expert en GEA, c'est quoi les deux premières lignes (1894.... et 2139 ...) ? en fait, tu utilises trois boutons poussoir en tout (un par zone), c'est ça ? il suffirait que je rajoute par exemple un triple-clic sur ondes boutons et modifier le VD pour désactiver l'ensemble des zones ?
sebcbien Posté(e) le 11 octobre 2016 Auteur Signaler Posté(e) le 11 octobre 2016 1894 sceneActivation -- id du module du bouton poussoir 2139 ui.ModeRez.value -- id du Virtual Device "Modes Eclairage ..." Ces lignes servent à déclencher GEA lors de l’appui sur le bouton ou lors du changement de valeur du VD Pour le moment je n'ai qu'un seul interrupteur/poussoir pour le rez, les deux autre on ne le fait jamais, mais au besoin je peux l'activer via VD Comme le VD sert de "variable globale" ça a du sens d'avoir ces zones pour les scripts, même sans poussoir physique
971jmd Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 salut @sebcbien peut être que me trompe, mai il me semble que qu'il existe un autre moyen avec RestartTask et StopTask pour réaliser un Auto / Manuel. mai je ne le trouve plus.
971jmd Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 salut @sebcbien peut être que me trompe, mai il me semble que qu'il existe un autre moyen avec RestartTask et StopTask pour réaliser un Auto / Manuel. mai je ne le trouve plus.
971jmd Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 j'ai tester ce code mai ça fonctionne pas local id_wallplug = 10 local id_detecteur = 61 -- On éteint le wallplug après 5 minutes local autoOff = GEA.add(id_wallplug, 5*60, "", {{"turnOff"}}) -- Sur detection de mouvement, on allume le wall plug et redémarre la commande autoOff local autoDetect = GEA.add(id_detecteur, -1, "", {{"turnOn", id_wallplug}, {"RestartTask", autoOff}}) -- Si on éteint le wallplug, on redémarre la commande d'exctintion automatique et le détecteur GEA.add(id_wallplug, -1, "", {{"Inverse"}, {"RestartTask", autoOff}, {"RestartTask", autoDetect}}) -- Si on allume le wallplug, on stop la commande d'exctintion automatique et le détecteur GEA.add(id_wallplug, -1, "", {{"StopTask", autoDetect}, {"StopTask", autoOff}})
pepite Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 Pourquoi a l extinction du wallplug tu relances les taches? Extinction & autodetect pas besoin. Si eteint pas bedoin de l eteindre et autodetect est connue pas gea dc ca rallulera je pense
971jmd Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 la je c'est plus, j'ai un mal de tête à la tête 1
971jmd Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 (modifié) j'ai tester ce bout de code mai, la lampe s’allume et s’éteint un fois et plus rien local id_wallplug = 16 local id_detecteur = 182 ---- On éteint le wallplug après 5 minutes local autoOff = GEA.add(true, 30, "", {{"turnOff", id_wallplug}}) --- Sur detection de mouvement, on allume le wall plug et redémarre la commande autoOff local autoDetect = GEA.add(id_detecteur, -1, "", {{"turnOn", id_wallplug}, {"RestartTask", autoOff} Modifié le 20 novembre 2016 par 971jmd
971jmd Posté(e) le 20 novembre 2016 Signaler Posté(e) le 20 novembre 2016 j'ai tester ce code il fonctionne pas trop mal, mai quand j'appui sur l’interrupteur et que je passe devant le détecteur la lampe s'éteint. dans le debug j'ai trouver une erreur . local id_lampe = 16 local detecteur = 182 -- Extinction automatique de la lampe après 10mn. local autoOff = GEA.add(id_lampe, 1*60, "", {{"turnOff"}}) -- Extinction de la lampe sur fermeture (inverse) de la porte GEA.add(detecteur, -1, "", {{"Inverse"}, {"turnOff", id_lampe}}) -- Allumage de la lampe sur ouverture de la porte GEA.add(detecteur, -1, "", {{"turnOn", id_lampe}, {"RestartTask", autoOff}}) -- Appuie sur l'interrupteur de la lampe, on stoppe l'extinction automatique. GEA.add(id_lampe, -1, "", {{"StopTask", autoOff}}) [DEBUG] 09:43:23: GEA Version 5.40 : en exécution... [DEBUG] 09:43:23: [ 16 | n/a ] sendActions : traitement des actions (ID: 4) [StopTask,1] [DEBUG] 09:43:23: [ 16 | n/a ] !!! ERREUR !!! : vérification (ID: 4) [StopTask,1]
971jmd Posté(e) le 21 novembre 2016 Signaler Posté(e) le 21 novembre 2016 salut je suis arriver avec deux variable global si j’appuie sur l’interrupteur j'allume ma lampe et n'autorise pas la détection d mouvement et quand j éteindre la lampe, je passe en mode AUTO mai je c'est pas si il est possible de faire plus simple et peut on remplacer une variable global par une variable local local tempo = {"Function", function() fibaro:sleep(3000) end} ----Mode Interupteur GEA.add({"Value", id["PLAFONNIER_CUISINE"], 1}, -1, "Mode interupteur actif", { {"turnOn", id["PLAFONNIER_CUISINE"]}, {"Global", "MODEINTERUP", "1"}, {"Global", "MODEDETECTEUR", "0"}}) GEA.add({"Value", id["PLAFONNIER_CUISINE"], 0}, -1, "Mode interupteur inactif", { {"turnOff", id["PLAFONNIER_CUISINE"]}, {"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}) ----Mode detecteur GEA.add({{"Value", id["DETTEC_COUL"], 1}, {"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}, -1, "", { {"turnOn", id["PLAFONNIER_CUISINE"]}, tempo, {"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}) ---- AUTO OFF SOUS MODE DETECTEUR GEA.add({{"Global", "MODEINTERUP", "0"}, {"Global", "MODEDETECTEUR", "1"}}, 30, "", {{"turnOff", id["PLAFONNIER_CUISINE"]}, {"Repeat"}}
Smart Posté(e) le 23 janvier 2020 Signaler Posté(e) le 23 janvier 2020 Le 21/11/2016 à 14:19, 971jmd a dit : Hola Se me ocurrieron dos variables globales si presiono el interruptor, enciendo mi lámpara y no permito la detección de movimiento y cuando apago la lámpara, cambio al modo AUTO Puede que no sea más simple y ¿podemos reemplazar una variable global con una variable local? Bonjour mon cher. J'essaie juste de développer quelque chose comme ça. Surtout dans la salle de bain. Je voudrais développer cette scène: Capteur de mouvement ID: 91 Id Dimmer 74 Ce que je voudrais faire, c'est ceci: J'entre dans la salle de bain, le capteur de mouvement me détecte, la lumière s'allume, s'il ne détecte pas de mouvement, il s'éteint en 5 minutes. Mais si je veux prendre un bain je clique sur la touche et désactive la scène et la mets en manuel. Je sors de la salle de bain, j'appuie à nouveau sur le bouton poussoir et il revient automatiquement. Merci beaucoup
Messages recommandés