pepite Posté(e) le 2 mars 2016 Auteur Signaler Posté(e) le 2 mars 2016 ce n'est pas moi mais @did C'est certainement un programme personnalisé ;-). Attendons qu'il le confirme ;-) Après tu peux mettre ce que tu veux ;-)
mprinfo Posté(e) le 2 mars 2016 Signaler Posté(e) le 2 mars 2016 C'est cool @did ce mets au lua dans peu de temps il va etre au top en électricité icône et lua lol Envoyé de mon SM-G900F en utilisant Tapatalk 1
Did Posté(e) le 2 mars 2016 Signaler Posté(e) le 2 mars 2016 J'avais à l'époque, en v3 un FGRGB avec un seul programme d'ajouté qui avait pris le n°6, et récemment en v4, ajouter d'autres FGRGB et j'ai refait des nouveaux programmes (clignotements vert, bleu, jaune, rouge que je vais attribuer à différents retour d'état: boite aux lettres, passage devant cellules, température congel anormale, etc...) qui ont pris le n° suivant d'Id, le module a pris le 545 et les programmes après le n°6, ont pris 546, 547, 548, etc... Le dernier FGRGB inclus à l'Id554. J'ai découvert aussi que les programmes lumineux se retrouvent sur tous les modules FGRGB. J'ai passé le nombre d'instances à 3 car j'avais une notification. Le message TTS passe bien aussi pendant le clignotement de mes bandeaux donc parfait. Il n'y a pas besoin de retirer les lignes de debug? On attend peut-être que je termine mes tests et que je l'expérimente. Je n'ai pas suivi pour la "temporisation variabilisée", qu'est-ce que je dois faire? Merci @pepite.
pepite Posté(e) le 2 mars 2016 Auteur Signaler Posté(e) le 2 mars 2016 Super pour le TTS @did Alors pour la temporisation de 15 secondes, j'vais rajoute une variable "Tempo" dans les "User Settings" au début de la scène. Comme tu as testé le TTS, ca a l'air de fonctionner aussi avec la variable "Tempo" Rajout d'une Variable "Debug" (true/false) dans le "User Settings" pour afficher ou non les Debugs, à tester ;-) --[[ %% properties 208 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545} -- liste des IDs des RGBs concernés local ProgRGB = 546 -- Programme "alerte" souhaité à mettre sur les RGBs local Tempo = 15 -- En secondes, durée de la mise sur le programme "ALERTE" des RGBs, avant remise des valeurs précédentes local Debug = true -- true : affichage dans le debug/false : pas d'affichage -------------------- --------- Limitation à 1 seule instance --------- if (fibaro:countScenes() > 1) then fibaro:abort() end ---------------------------------------------- if Debug then local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) end -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- --------------function GetPutValueRGB---- function GetPutValueRGBs(id) for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog if Debug then fibaro:debug("RGB num " ..id_RGBs[i].. " avait comme Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("RGB num " ..id_RGBs[i].. " était sur le Programme " ..Prog) end -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB if Debug then fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) end fibaro:call(id_RGBs[i], "startProgram", ProgRGB) setTimeout( function() if Debug then fibaro:debug("Remise des valeurs précédentes sur les RGBs") end if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) if Debug then fibaro:debug("Prog " ..Prog.. " sur " ..id_RGBs[i]) end else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) if Debug then fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end end, Tempo*1000) --tempo end end ---------- --- Message TTS ---- fibaro:call(535, "pressButton", 2) -- Lancement fonction --- GetPutValueRGBs() 1
Did Posté(e) le 2 mars 2016 Signaler Posté(e) le 2 mars 2016 Pas mal non plus la variable Tempo, j'ai essayé 45 secondes et ça fonctionne. :60: [DEBUG] 23:53:19: Démarrage du script : 02/03/2016 23:53:19 [DEBUG] 23:53:19: RGB num 239 avait comme Couleur : 0,0,0,0 [DEBUG] 23:53:19: RGB num 239 était sur le Programme 6 [DEBUG] 23:53:19: Mise des RGBs sur Programme : 546 [DEBUG] 23:53:19: RGB num 545 avait comme Couleur : 0,0,0,0 [DEBUG] 23:53:19: RGB num 545 était sur le Programme 0 [DEBUG] 23:53:19: Mise des RGBs sur Programme : 546 [DEBUG] 23:53:19: RGB num 554 avait comme Couleur : 0,0,0,0 [DEBUG] 23:53:19: RGB num 554 était sur le Programme 6 [DEBUG] 23:53:19: Mise des RGBs sur Programme : 546 [DEBUG] 23:53:49: Remise des valeurs précédentes sur les RGBs [DEBUG] 23:53:49: Prog 6 sur 239 [DEBUG] 23:53:49: Remise des valeurs précédentes sur les RGBs [DEBUG] 23:53:49: Couleur sur : 545 [DEBUG] 23:53:49: Remise des valeurs précédentes sur les RGBs [DEBUG] 23:53:49: Prog 6 sur 554 Me reste à tester demain l'arrêt prolongé devant les cellules et le debug sur False. Merci @pepite.
pepite Posté(e) le 3 mars 2016 Auteur Signaler Posté(e) le 3 mars 2016 Bonjour, Petit test, ajout d'une fonction de Debug avec des couleurs pour faire beau ;-) si Debug = true Pas sur de la syntaxe ;-) --[[ %% properties 208 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545, 554} -- liste des IDs des RGBs concernés local ProgRGB = 546 -- Programme "alerte" souhaité à mettre sur les RGBs local Tempo = 15 -- En secondes, durée de la mise sur le programme "ALERTE" des RGBs, avant remise des valeurs précédentes local Debug = true -- true : affichage dans le debug/false : pas d'affichage -------------------- --------- Limitation à 1 seule instance --------- if (fibaro:countScenes() > 1) then fibaro:abort() end ---------------------------------------------- ---- Function Debug ------------ function Debug( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); end ------------------ if Debug then local currentdate = os.date("%d/%m/%Y %H:%M:%S") Debug("Green", "Démarrage du script : " ..currentdate) end -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- --------------function GetPutValueRGB---- function GetPutValueRGBs(id) for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog if Debug then Debug("Red", "RGB num " ..id_RGBs[i].. " avait comme Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) Debug("Red", "RGB num " ..id_RGBs[i].. " était sur le Programme " ..Prog) end -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB if Debug then Debug("Green", "Mise des RGBs sur Programme : " ..ProgRGB) end fibaro:call(id_RGBs[i], "startProgram", ProgRGB) setTimeout( function() if Debug then Debug("Green", "Remise des valeurs précédentes sur les RGBs") end if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) if Debug then Debug("Red", "Prog " ..Prog.. " sur " ..id_RGBs[i]) end else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) if Debug then Debug("Red", "Couleur sur : " ..id_RGBs[i]) end end end, Tempo*1000) --tempo end end ---------- --- Message TTS ---- if Debug then Debug("Green", "Message TTS") end fibaro:call(535, "pressButton", 2) -- Lancement fonction --- GetPutValueRGBs()
Did Posté(e) le 10 mars 2016 Signaler Posté(e) le 10 mars 2016 Bon, j'ai enfin testé le stationnement prolongé devant les cellules et le programme 546 se lance et se coupe au bout de la tempo donc c'est bon pour moi. Le debug sur False est OK aussi donc parfait @pepite et merci. Je viens aussi de décliner cette même scène pour le capteur de ma boite aux lettres avec un clignotement des bandeaux dans une autre couleur (nouveau programme RGB) et c'est bon.
Domodial Posté(e) le 10 mars 2016 Signaler Posté(e) le 10 mars 2016 @pepite Il va falloir faire un beau tuto/explications des options pour les noobs (dont moi)
Did Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 Encore une petite question: Les lignes qui surveillent le FGBS (Id 208) ne déclenchent que sur un value=1 ou un changement d'état parce que pour ma boite aux lettres, le paramètre 2 du FGBS (délai de l'annulation de l'alarme) est à 14400 secondes, cela me permet de laisser l'icône actif pendant ces 4 heures et le problème, c'est qu'au bout des 4 heures, les bandeaux clignotent quand l'icône revient au repos.
pepite Posté(e) le 11 mars 2016 Auteur Signaler Posté(e) le 11 mars 2016 @domodial, Très simple : ca permet d'avoir une alerte visuelle avec des RGBs en fonction d'un déclencheur quelconque, module, variable globale...enfin tout ce qui peut-etre utilisé en déclencheur. -- l'état des RGBS précédant l'alerte est enregistre et remis à la fin de l'alerte visuelle. A modifier donc dans le script : - le déclencheur, ici 208 value pour les besoins de @Did - les parametres "User Settings" soit : ------ User settings ----- local id_RGBs = {239, 545, 554} -- liste des IDs des RGBs concernéslocal ProgRGB = 546 -- Programme "alerte" souhaité à mettre sur les RGBs local Tempo = 15 -- En secondes, durée de la mise sur le programme "ALERTE" des RGBs, avant remise des valeurs précédentes local Debug = true -- true : affichage dans le debug/false : pas d'affichage 1- local id_RGBs : la liste des RGBs devant être allumés pour l'alerte visuelle 2- ProgRGB : le programme voulu à mettre sur les RGBS "ALERTE" 3- Tempo : duree d'allumage de l'alerte visuelle 4- Debug : true/false, affichage ou non dans le debug @Did la scene reagit avec le changement d'etat de 208, c'est--dire le passage de 0 à 1 effectivement si tu laisses une duree, je pensais pas que le passage de 1 à 0 provoquait qqch pour la boite. je ne savais pas que cela reagissait comme ceci A reflechir comment le contourner, la de suite je t'avoue je ne vois pas ;-)
Did Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 Bonjour @pepite, Le déclencheur (Id 208) n'est à déclarer que dans l'entête?
pepite Posté(e) le 11 mars 2016 Auteur Signaler Posté(e) le 11 mars 2016 Salut @Did, Oui c'est le déclencheur de la scene. A quoi penses tu ?
Did Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 Non a rien, c'est parce que c'est le seul endroit où j'ai vu un 208 dans le script et je me demandais si j'en avais zappé ailleurs.
Moicphil Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 Moi je dis que vous avez fais du super boulot. Et que ça mériterai un petit Tuto dédié svp...
Did Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 C'est surtout @pepite a qui revient le mérite. Je n'ai fais que tester et quelques aller-retour dans la cour. Il faut que je m'installe un bouton relié à un contact de FGBS près du PC pour mes tests. Encore un petit truc à régler avec le délai de l'annulation de l'alarme (paramètre 2 du FGBS) qui redéclenche la scène au terme de ce réglage.
pepite Posté(e) le 11 mars 2016 Auteur Signaler Posté(e) le 11 mars 2016 je me suis bien eclate ;-) merciiii heuu tuto..heuuu ;-) @Did faut peut-etre modifier la scene pour la boite aux lettres. Pourquoi tu laisses l'actif pendant 4h ? poste ta scene pour la boite aux lettres stp.
Did Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 C'est pour contrôler facilement à la tablette au mur si j'ai reçu du courrier pendant mon absence, l'icône reste active pendant ces quatre heures. La scène est la même que celle des cellules. --[[ %% properties 66 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545, 554} -- liste des IDs des RGBs concernés local ProgRGB = 547 -- Programme "alerte" souhaité à mettre sur les RGBs local Tempo = 20 -- En secondes, durée de la mise sur le programme "ALERTE" des RGBs, avant remise des valeurs précédentes local Debug = false -- true : affichage dans le debug/false : pas d'affichage -------------------- --------- Limitation à 1 seule instance --------- if (fibaro:countScenes() > 1) then fibaro:abort() end ---------------------------------------------- if Debug then local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) end -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- --------------function GetPutValueRGB---- function GetPutValueRGBs(id) for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog if Debug then fibaro:debug("RGB num " ..id_RGBs[i].. " avait comme Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("RGB num " ..id_RGBs[i].. " était sur le Programme " ..Prog) end -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB if Debug then fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) end fibaro:call(id_RGBs[i], "startProgram", ProgRGB) setTimeout( function() if Debug then fibaro:debug("Remise des valeurs précédentes sur les RGBs") end if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) if Debug then fibaro:debug("Prog " ..Prog.. " sur " ..id_RGBs[i]) end else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) if Debug then fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end end, Tempo*1000) --tempo end end ---------- --- Message TTS ---- fibaro:call(535, "pressButton", 5) fibaro:call(90, "pressButton", 1) -- Lancement fonction --- GetPutValueRGBs() Je m'aperçois que je n'ai pas modifié l'Id 208 dans les lignes commentées.
Domodial Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 Et si pas de TSS on peut désactiver les lignes TTS et le VD dans l'entete ?
Did Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 Tu retires les lignes 87 & 88 mais rien dans l'entête.
Domodial Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 et du coup dans l'entete c'est quoi ? Un module ou le numéro de la scène ?
Did Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 Dans la scène juste au dessus, le 66 value, c'est le contact de mon FGBS dans ma boite aux lettres, c'est le seul endroit à renseigner mais on ne peut pas en mettre plusieurs.
Domodial Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 hum c'est mal barré... Moi j'ai rien a mettre ici...
pepite Posté(e) le 13 mars 2016 Auteur Signaler Posté(e) le 13 mars 2016 tu peux mettre ce que tu veux @domodial pou declencher la scene alerte, ca depend de ton besoin, qu'aimerais tu pouvoir faire ? @Did, Pour contourner le parametre 2 du FGBS, peut-etre comme ceci, à tester evidemment. - Laisse le 66 value dans l'entete - Cree une variable non predefinie : Alerte_Bal L'idée, rajouter des conditions pour que la scene se lance : 1- l'etat du 66 value 2- la valeur de la variable globale mise à jour avec GEA lorsque value 66 = 1 alors "Alerte_Bal" = ON lorsque Value 66 = 0 apres les 4h, GEA regarde et au bout de 5 mins ou moins, met à jour la variable à OFF La scene ne se lancera que si value 66 = 1 et que si Alerte_Bal = OFF sinon on avorte ;-) les lignes GEA -- Si FGBS à 1, variable Alerte_Bal à ON, donc pendant le 4h, parametre 2 FGBS GEA.add(id["BAL"], -1, "", {{"Global", "Alerte_Bal", "ON"}}) -- Apres les 4h, si FGBS à 0 pendant 5 mins, variable à OFF pour éviter le declenchement de la scene au passage de 1 à 0 GEA.add(id["BAL"], 5*60, "", {{"Inverse"}, {"Global", "Alerte_Bal", "OFF"}}) la scene --[[ %% properties 66 value %% globals --]] ------ User settings ----- local id_RGBs = {239, 545, 554} -- liste des IDs des RGBs concernés local ProgRGB = 547 -- Programme "alerte" souhaité à mettre sur les RGBs local Tempo = 20 -- En secondes, durée de la mise sur le programme "ALERTE" des RGBs, avant remise des valeurs précédentes local Debug = false -- true : affichage dans le debug/false : pas d'affichage -------------------- --------- Limitation à 1 seule instance --------- if (fibaro:countScenes() > 1) then fibaro:abort() end ---------------------------------------------- if Debug then local currentdate = os.date("%d/%m/%Y %H:%M:%S") fibaro:debug("Démarrage du script : " ..currentdate) end -- fonction split ---- function split(s, pattern, maxsplit) local pattern = pattern or ' ' local maxsplit = maxsplit or -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end return t end ---------- --------------function GetPutValueRGB---- function GetPutValueRGBs(id) for i = 1, #id_RGBs do -- Recup Couleur et programme des RGBs local result = split(fibaro:getValue(id_RGBs[i], "color"), ',') local Prog = tonumber(fibaro:getValue(id_RGBs[i], "currentProgramID")) -- Debug valeur result et prog if Debug then fibaro:debug("RGB num " ..id_RGBs[i].. " avait comme Couleur : " ..result[1]..","..result[2]..","..result[3]..","..result[4]) fibaro:debug("RGB num " ..id_RGBs[i].. " était sur le Programme " ..Prog) end -- SI activation cellule 208, demarrage des RGB sur le programme ProgRGB if Debug then fibaro:debug("Mise des RGBs sur Programme : " ..ProgRGB) end fibaro:call(id_RGBs[i], "startProgram", ProgRGB) setTimeout( function() if Debug then fibaro:debug("Remise des valeurs précédentes sur les RGBs") end if ((result[1] == "0" and result[2] == "0" and result[3] == "0" and result[4] == "0") and (tonumber(Prog) > 0)) then fibaro:call(id_RGBs[i], "startProgram", Prog) if Debug then fibaro:debug("Prog " ..Prog.. " sur " ..id_RGBs[i]) end else fibaro:call(id_RGBs[i], "setColor", result[1], result[2], result[3], result[4]) if Debug then fibaro:debug("Couleur sur : " ..id_RGBs[i]) end end end, Tempo*1000) --tempo end end ---------- --- Message TTS ---- fibaro:call(535, "pressButton", 5) fibaro:call(90, "pressButton", 1) local Bal = fibaro:getValue(66, "value") > 0 local Alerte_Bal = fibaro:getGlobalValue("Alerte_Bal") -- Lancement fonction --- if (Bal and (Alerte_Bal == "OFF")) then -- 66 value à 1 et Alerte_Bal à ON (VG mise à jour par GEA en focntion etat de 66) GetPutValueRGBs() else fibaro:abort() end
Did Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 Merci @pepite, Tant qu'à créer une variable, autant remettre le paramètre 2 à 0 (comme le 208 des cellules) et mettre à jour la variable à l'ouverture de la boite (pour une durée de 4 heures ou même 8), non? Où même seulement changer l'icône d'un VD et le remettre 4 ou 8 heures après?
pepite Posté(e) le 13 mars 2016 Auteur Signaler Posté(e) le 13 mars 2016 oui pourquoi pas, avec GEA possible mais tuperdrais le visuel sur ta tablette
Messages recommandés