pepite Posté(e) le 19 mars 2019 Signaler Posté(e) le 19 mars 2019 Je vous confirme le code du RGB, c'est bien cela. fibaro:call(id,r,g,b,w)
J3R3M Posté(e) le 19 mars 2019 Auteur Signaler Posté(e) le 19 mars 2019 Merci de ta confirmation @pepite
J3R3M Posté(e) le 21 mars 2019 Auteur Signaler Posté(e) le 21 mars 2019 (modifié) Bonsoir, Rentré depuis peu, j'ai effectué une dizaine d'essais différents et ça a l'air fonctionnel. Je n'ai pas rencontré d'erreur, la scène enchaîne les options correctement. La seule vérification restante à faire semble être pour les modules RGBW Je fais le fou-dingue et j'ai confiance, j'ai mis à jour le premier post en donnant quelques précisions sur la nouvelle version de cette scène. Ce qui est fou, c'est que plus d'options sont rajoutées et moins elle semble longue! Modifié le 21 mars 2019 par J3R3M 2
pepite Posté(e) le 22 mars 2019 Signaler Posté(e) le 22 mars 2019 Le 16/03/2019 à 17:18, J3R3M a dit : Un appui sur : affichera 12:00 Une bonne grasse matinée ;-) Super les details sur le 1er post, c'est très clair ;-) Merci
J3R3M Posté(e) le 1 avril 2019 Auteur Signaler Posté(e) le 1 avril 2019 Le 22/03/2019 à 09:31, pepite a dit : Une bonne grasse matinée ;-) En effet! Il suffit de changer la valeur du bouton pour s'enregistrer un preset basique à vrai dire Le 22/03/2019 à 09:31, pepite a dit : Super les details sur le 1er post, c'est très clair ;-) Merci Je viens de modifier encore un peu le premier post pour éclaircir certains points et moins rebuter les intéressés! D'ailleurs, avez-vous pu tester ? 1
Lazer Posté(e) le 1 avril 2019 Signaler Posté(e) le 1 avril 2019 non désolé, je ne fais pas du tout de domotique en ce moment. Faut que je m'y remette... Je te tiens au courant
Did Posté(e) le 1 avril 2019 Signaler Posté(e) le 1 avril 2019 Moi aussi, j'installerais ton VD @J3R3M mais je n'ai pas encore eu le temps.
pepite Posté(e) le 2 avril 2019 Signaler Posté(e) le 2 avril 2019 Bonjour, Désolé, pas eu le teps non plus, mais promis c'est dans ma TODOList rapidement ;-) Merci pour la MAJ du 1er pst. Même plus à penser, ca me va très bien
J3R3M Posté(e) le 6 avril 2019 Auteur Signaler Posté(e) le 6 avril 2019 Merci de vos réponses La dernière version marche parfaitement pour moi en tous cas Rester à confirmer pour les devices RGBW, mais je suis confiant 1
pepite Posté(e) le 7 avril 2019 Signaler Posté(e) le 7 avril 2019 Nickel merci de ton retourEnvoyé de mon BND-L21 en utilisant Tapatalk
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 Le 06/04/2019 à 21:08, J3R3M a dit : Rester à confirmer pour les devices RGBW, mais je suis confiant Bonjour bonjour, J'ai mis le temps non ? ;-) En test en ce moment, ca ne fonctionne pas pour moi ;-), le RGBW reste éteint, c'est c... ;-) - local PIECE : modifiée partout, les 3 boutons + mainloop VD TableReveil ok : [DEBUG] 09:16:01: {"Son":"0","FLights":"11","Min":0,"Heure":10,"Mode":1,"Lights":"100","FSon":"0"} La scène est configurée comme ceci -- Code de la Chambre correspondant à la Variable Globale créée local PIECE = "Ch_Noemie"; -- Tableau Etat du soleil (pour gestion volets roulants) local Soleil = {Etat=1, VG="HOME_SOLEIL", Up="1"}; -- Tableaux qui seront exploités LightsList, SpeakerAction = {},{}; --Liste des devices à traiter pour la simulation d'aube --[[table.insert(LightsList, {typ="Device", mode="OR", id=27}); table.insert(LightsList, {typ="VD", mode="OR", id=115, slider=10, btn=6}); table.insert(LightsList, {typ="Shutter", mode="OR", id=279, pas=6}); table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=100, b=0, w=100}); -- Liste des actions à effectuer sur les enceintes table.insert(SpeakerAction, {id=242, slider=10}); table.insert(SpeakerAction, {id=242, btn=18});--]] table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=255, b=100, w=200}); -- DEBUG local debug = 1; local tempo = 1; -- seconde La scene se lance bien [DEBUG] 06:23:00: [LightsBtn] -> Début de la fonction [DEBUG] 06:23:00: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée [DEBUG] 06:23:01: [LightsBtn] -> Fin de la fonction [DEBUG] 06:23:01: [LightsFade] -> Début de la fonction [DEBUG] 06:23:03: [LightsBtn] -> Début de la fonction [DEBUG] 06:23:03: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée [DEBUG] 06:23:04: [LightsBtn] -> Fin de la fonction [DEBUG] 06:23:04: [LightsFade] -> Début de la fonction [DEBUG] 06:25:25: [LightsFade] [RGBW 279] Allumé à 25% de la valeur prédéfinie (100) [DEBUG] 06:25:28: [LightsFade] [RGBW 279] Allumé à 25% de la valeur prédéfinie (100) [DEBUG] 06:27:55: [LightsFade] [RGBW 279] Allumé à 50% de la valeur prédéfinie (100) [DEBUG] 06:27:58: [LightsFade] [RGBW 279] Allumé à 50% de la valeur prédéfinie (100) [DEBUG] 06:30:25: [LightsFade] [RGBW 279] Allumé à 75% de la valeur prédéfinie (100) [DEBUG] 06:30:28: [LightsFade] [RGBW 279] Allumé à 75% de la valeur prédéfinie (100) [DEBUG] 06:32:55: [LightsFade] [RGBW 279] Allumé à 100% de la valeur prédéfinie (100) [DEBUG] 06:32:58: [LightsFade] [RGBW 279] Allumé à 100% de la valeur prédéfinie (100) [DEBUG] 06:33:01: [LightsFade] -> Fin de la fonction [DEBUG] 06:33:01: [SpeakersAction] -> Début de la fonction [DEBUG] 06:33:01: Aucune enceinte à traiter dans cette fonction [DEBUG] 06:33:01: [SpeakersAction] -> Fin de la fonction [DEBUG] 06:33:01: [SpeakersFade] -> Début de la fonction [DEBUG] 06:33:01: Aucune enceinte à traiter dans cette fonction [DEBUG] 06:33:01: [SpeakersFade] -> Fin de la fonction [DEBUG] 06:33:01: Fin de la scène. Debout maintenant! [DEBUG] 06:33:04: [LightsFade] -> Fin de la fonction [DEBUG] 06:33:04: [SpeakersAction] -> Début de la fonction [DEBUG] 06:33:04: Aucune enceinte à traiter dans cette fonction [DEBUG] 06:33:04: [SpeakersAction] -> Fin de la fonction [DEBUG] 06:33:04: [SpeakersFade] -> Début de la fonction [DEBUG] 06:33:04: Aucune enceinte à traiter dans cette fonction [DEBUG] 06:33:04: [SpeakersFade] -> Fin de la fonction [DEBUG] 06:33:04: Fin de la scène. Debout maintenant! On rentre donc bien dans la boucle elseif ( LightsList[j].typ == "RGBW" and LightsList[j].mode == "AND" ) or ( LightsList[j].typ == "RGBW" and Soleil.Etat == 1 and LightsList[j].mode == "OR" and SunState() ) then local facteur = math.floor(i*Puissance/10000); local red,green,blue,white = LightsList[j].r*facteur,LightsList[j].g*facteur,LightsList[j].b*facteur,LightsList[j].w*facteur; fibaro:call(LightsList[j].id, "setColor", red, green, blue, white); Debug("grey","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] Allumé à "..i.."% de la valeur prédéfinie ("..Puissance..")", i); Je confirme le fonctionnement de la commande : fibaro:call(id,r,g,b,w) cela allume bien le ruban.
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 Boooooonjour @pepite! Et merci de ce retour! Et également d'avoir pris le temps de tester cette scène! Alors, on va essayer de comprendre ce qu'il se passe sans avoir de module RGBW sous la main... Ni quoi que ce soit de domotique pour le coup J'ai effectivement déménagé récemment et tout ce qui concerne la domotique est encore dans les cartons Dans un premier temps, je vois que tu as deux lignes concernant le module 279, était-ce simplement pour un test ? Je prends le temps de regarder à quoi ressemblait cette scène et où pourrait se situer le problème et je reviens vers toi au plus vite
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 (modifié) @pepite, me revoilà! Dans tes paramètres, je constate des incohérences sur les lignes suivantes : table.insert(LightsList, {typ="Shutter", mode="OR", id=279, pas=6}); table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=100, b=0, w=100}); -- Liste des actions à effectuer sur les enceintes table.insert(SpeakerAction, {id=242, slider=10}); table.insert(SpeakerAction, {id=242, btn=18});--]] table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=255, b=100, w=200}); Comme dit ci-dessus, tu as deux fois la ligne concernant ton module RGBW 279, avec des valeurs différentes, ce qui doit créer un conflit lors du traitement dans la boucle. Aussi et c'est plus problématique, il semble que tu aies aussi un volet roulant avec l'ID 279. Ton volet roulant a un bandeau RGBW intégré ? xD Plus sérieusement, puisque tu ne m'as pas dit que ton volet roulant ne s'ouvrait pas, il y a des chances que l'ID précisé pour le module RGBW ne soit pas correct. Je t'invite également à supprimer une des deux lignes concernant le même module RGBW pour éviter de changer sans cesses la valeur du même module. J'attends ton retour Edit : Je viens de voir qu'il s'agissait des valeurs d'exemple intégrés dans la scène et que c'était en commentaire. Désolé, ce n'est pas flagrant avec les balises Code. Je regarde du plus près Modifié le 5 mars 2020 par J3R3M
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 Hop hop salut;-) Non non, je n'ai qu'une ligne, c'est le copier coller quand tu mets la balise code ne les commente pas lol Ma scene ressemble à ceci --Liste des devices à traiter pour la simulation d'aube --[[table.insert(LightsList, {typ="Device", mode="OR", id=27}); table.insert(LightsList, {typ="VD", mode="OR", id=115, slider=10, btn=6}); table.insert(LightsList, {typ="Shutter", mode="OR", id=279, pas=6}); table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=100, b=0, w=100}); -- Liste des actions à effectuer sur les enceintes table.insert(SpeakerAction, {id=242, slider=10}); table.insert(SpeakerAction, {id=242, btn=18});--]] table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=255, b=255, w=255}); J'ai testé plusieurs choses jusqu'a en arriver la.. bizarrement il ne fait pas le fibaro:call que j'ai reteste avec les memes valeurs dans une scene test : qui allume bien le ruban elseif ( LightsList[j].typ == "RGBW" and LightsList[j].mode == "AND" ) or ( LightsList[j].typ == "RGBW" and Soleil.Etat == 1 and LightsList[j].mode == "OR" and SunState() ) then --local facteur = math.floor(i*Puissance/10000); --local red,green,blue,white = LightsList[j].r*facteur,LightsList[j].g*facteur,LightsList[j].b*facteur,LightsList[j].w*facteur; --local red,green,blue,white = LightsList[j].r,LightsList[j].g,LightsList[j].b,LightsList[j].w; --fibaro:call(LightsList[j].id, "setColor", red, green, blue, white); fibaro:call(279, "setColor", 255, 151, 143, 255); Debug("grey","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] Allumé à "..i.."% de la valeur prédéfinie ("..Puissance..")", i); [DEBUG] 11:16:00: [LightsBtn] -> Début de la fonction[DEBUG] 11:16:00: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée[DEBUG] 11:16:01: [LightsBtn] -> Fin de la fonction[DEBUG] 11:16:01: [LightsFade] -> Début de la fonction[DEBUG] 11:16:03: [LightsBtn] -> Début de la fonction[DEBUG] 11:16:03: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée[DEBUG] 11:16:04: [LightsBtn] -> Fin de la fonction[DEBUG] 11:16:04: [LightsFade] -> Début de la fonction[DEBUG] 11:17:13: [LightsFade] [RGBW 279] Allumé à 25% de la valeur prédéfinie (100)[DEBUG] 11:17:16: [LightsFade] [RGBW 279] Allumé à 25% de la valeur prédéfinie (100)[DEBUG] 11:18:28: [LightsFade] [RGBW 279] Allumé à 50% de la valeur prédéfinie (100)[DEBUG] 11:18:31: [LightsFade] [RGBW 279] Allumé à 50% de la valeur prédéfinie (100)[DEBUG] 11:19:43: [LightsFade] [RGBW 279] Allumé à 75% de la valeur prédéfinie (100)[DEBUG] 11:19:46: [LightsFade] [RGBW 279] Allumé à 75% de la valeur prédéfinie (100)[DEBUG] 11:20:58: [LightsFade] [RGBW 279] Allumé à 100% de la valeur prédéfinie (100)[DEBUG] 11:21:01: [LightsFade] -> Fin de la fonction[DEBUG] 11:21:01: [LightsFade] [RGBW 279] Allumé à 100% de la valeur prédéfinie (100)[DEBUG] 11:21:01: [SpeakersAction] -> Début de la fonction[DEBUG] 11:21:01: Aucune enceinte à traiter dans cette fonction[DEBUG] 11:21:01: [SpeakersAction] -> Fin de la fonction[DEBUG] 11:21:01: [SpeakersFade] -> Début de la fonction[DEBUG] 11:21:01: Aucune enceinte à traiter dans cette fonction[DEBUG] 11:21:01: [SpeakersFade] -> Fin de la fonction[DEBUG] 11:21:01: Fin de la scène. Debout maintenant![DEBUG] 11:21:04: [LightsFade] -> Fin de la fonction[DEBUG] 11:21:05: [SpeakersAction] -> Début de la fonction[DEBUG] 11:21:05: Aucune enceinte à traiter dans cette fonction[DEBUG] 11:21:05: [SpeakersAction] -> Fin de la fonction[DEBUG] 11:21:05: [SpeakersFade] -> Début de la fonction[DEBUG] 11:21:05: Aucune enceinte à traiter dans cette fonction
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 il y a 9 minutes, pepite a dit : [DEBUG] 11:16:00: [LightsBtn] -> Début de la fonction[DEBUG] 11:16:00: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée[DEBUG] 11:16:01: [LightsBtn] -> Fin de la fonction[DEBUG] 11:16:01: [LightsFade] -> Début de la fonction[DEBUG] 11:16:03: [LightsBtn] -> Début de la fonction[DEBUG] 11:16:03: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée[DEBUG] 11:16:04: [LightsBtn] -> Fin de la fonction[DEBUG] 11:16:04: [LightsFade] -> Début de la fonction Merci de ta réponse. Déjà dans le DEBUG, il y a cette partie qui me parait étrange. Les fonctions LightsBtn et LightsFade sont appelées une seule fois, l'une après l'autre, à aucun moment elles ne sont censées se chevaucher... Cela fait plusieurs mois que j'ai tout remballé, une mise à jour majeure aurait-elle vue le jour et aurait-elle pu provoquer cela ? Là, chacune des fonctions est lancée deux fois Combien d'instances de la scène sont autorisées ? Si plus de 1, retente avec une seule instance au maximum s'il-te-plaît.
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 Avec 1 instance : c'est meiux mais eteint ;-) [DEBUG] 13:54:01: [LightsBtn] -> Début de la fonction [DEBUG] 13:54:01: [LightsBtn] [RGBW 279] Pas de bouton à appuyer pour cette entrée [DEBUG] 13:54:02: [LightsBtn] -> Fin de la fonction [DEBUG] 13:54:02: [LightsFade] -> Début de la fonction [DEBUG] 13:55:14: [LightsFade] [RGBW 279] Allumé à 25% de la valeur prédéfinie (100) [DEBUG] 13:56:29: [LightsFade] [RGBW 279] Allumé à 50% de la valeur prédéfinie (100) [DEBUG] 13:57:44: [LightsFade] [RGBW 279] Allumé à 75% de la valeur prédéfinie (100) [DEBUG] 13:58:59: [LightsFade] [RGBW 279] Allumé à 100% de la valeur prédéfinie (100) [DEBUG] 13:59:02: [LightsFade] -> Fin de la fonction [DEBUG] 13:59:02: [SpeakersAction] -> Début de la fonction [DEBUG] 13:59:02: Aucune enceinte à traiter dans cette fonction [DEBUG] 13:59:02: [SpeakersAction] -> Fin de la fonction [DEBUG] 13:59:02: [SpeakersFade] -> Début de la fonction [DEBUG] 13:59:02: Aucune enceinte à traiter dans cette fonction [DEBUG] 13:59:02: [SpeakersFade] -> Fin de la fonction [DEBUG] 13:59:02: Fin de la scène. Debout maintenant! J'ai essaye avec allume une lampe toute simple, elle ne s'allume pas non plus, je comprends pas pourquoi cela ne fait pas le fibaro:call local red,green,blue,white = LightsList[j].r*facteur,LightsList[j].g*facteur,LightsList[j].b*facteur,LightsList[j].w*facteur; --local red,green,blue,white = LightsList[j].r,LightsList[j].g,LightsList[j].b,LightsList[j].w; --fibaro:call(LightsList[j].id, "setColor", red, green, blue, white); --fibaro:call(279, "setColor", 255, 151, 143, 255); fibaro:call(12,"turnOn") Debug("grey","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] Allumé à "..i.."% de la valeur prédéfinie ("..Puissance..")", i);
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 Bon, on avance. Ça signifie qu'il y a des modifications à effectuer par la suite du côté du VD pour qu'il ne lance qu'une seule fois la scène. Je verrai ça plus tard. Tu dois pouvoir tester la scène directement, sans passer par le VD, en la lançant directement depuis le bouton adéquat. Désolé, encore une fois, n'ayant rien sous la main, je vais te demander de faire des essais pour essayer de comprendre où le problème se situe, puisqu'il n'est visiblement pas évident. Avançons par étape, essayons de ne rien déclarer dans LightsList() et SpeakerAction() : -- Code de la Chambre correspondant à la Variable Globale créée local PIECE = "Ch_Noemie"; -- Tableau Etat du soleil (pour gestion volets roulants) local Soleil = {Etat=0, VG="HOME_SOLEIL", Up="1"}; -- Tableaux qui seront exploités LightsList, SpeakerAction = {},{}; -- Liste des devices à traiter pour la simulation d'aube -- Liste des actions à effectuer sur les enceintes Mais, que tu indiques ton code directement dans la fonction principale reveil() (en fin de scène) : -- Fonction Principale local TableReveil = json.decode(fibaro:getGlobalValue("REVEIL_"..PIECE)); local function reveil(LightsPower,LightsTps,SpeakersPower,SpeakersTps) LightsBtn(); LightsFade(LightsPower,LightsTps); fibaro:call(279, "setColor", 255, 151, 143, 255); SpeakersAction(); SpeakersFade(SpeakersPower,SpeakersTps); -- Changement Mode if TableReveil.Mode == 1 then TableReveil.Mode = 3; fibaro:setGlobal("REVEIL_"..PIECE, json.encode(TableReveil)); end end On devrait avoir un DEBUG de fonctions qui ne font que checker et ne rien faire. À voir si ton ruban RGBW s'allume cette fois!
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 Well done, allumé ;-) -- Fonction Principale local TableReveil = json.decode(fibaro:getGlobalValue("REVEIL_"..PIECE)); local function reveil(LightsPower,LightsTps,SpeakersPower,SpeakersTps) LightsBtn(); LightsFade(LightsPower,LightsTps); fibaro:call(279, "setColor", 255, 151, 143, 255); SpeakersAction(); SpeakersFade(SpeakersPower,SpeakersTps); -- Changement Mode if TableReveil.Mode == 1 then TableReveil.Mode = 3; fibaro:setGlobal("REVEIL_"..PIECE, json.encode(TableReveil)); end end -- Si pas de réveil programmé if tonumber(fibaro:getGlobalValue("REVEIL_"..PIECE)) ~= nil or fibaro:getGlobalValue("REVEIL_"..PIECE) == nil or ( type(TableReveil) == "table" and TableReveil.Mode == 3 ) then Debug("red", "Aucun réveil n'a été programmé via le VD associé."); --fibaro:abort(); end -- On exécute reveil(TableReveil.Lights,TableReveil.FLights,TableReveil.Son,TableReveil.FSon); Debug("lightblue", "Fin de la scène. Debout maintenant!"); [DEBUG] 15:20:35: Aucun réveil n'a été programmé via le VD associé. [DEBUG] 15:20:35: [LightsBtn] -> Début de la fonction [DEBUG] 15:20:35: [LightsBtn] -> Fin de la fonction [DEBUG] 15:20:35: [LightsFade] -> Début de la fonction [DEBUG] 15:25:35: [LightsFade] -> Fin de la fonction [DEBUG] 15:25:35: [SpeakersAction] -> Début de la fonction [DEBUG] 15:25:35: Aucune enceinte à traiter dans cette fonction [DEBUG] 15:25:35: [SpeakersAction] -> Fin de la fonction [DEBUG] 15:25:35: [SpeakersFade] -> Début de la fonction [DEBUG] 15:25:35: Aucune enceinte à traiter dans cette fonction [DEBUG] 15:25:35: [SpeakersFade] -> Fin de la fonction [DEBUG] 15:25:35: Fin de la scène. Debout maintenant
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 (modifié) Je suis sur mobile et n’ai pas accès à la balise code, mais l’étape suivante serait de réintégrer seulement ton entrée LightsList : table.insert(LightsList, {typ="RGBW", mode="AND", id=279, r=255, g=255, b=255, w=255}); Et, changer la fonction principale ainsi : —LightsFade(LightsPower,LightsTps); fibaro:call(LightsList[1].id, "setColor", LightsList[1].r, LightsList[1].g, LightsList[1].b, LightsList[1].w); Modifié le 5 mars 2020 par J3R3M Balsie code
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 Ok, mais ce qui voudrait dire que je ne pourrais pas ajouter d'autres devices lampes et que je n'aurai plus la fonctionnalite de fade ?
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 (modifié) il y a 13 minutes, pepite a dit : Ok, mais ce qui voudrait dire que je ne pourrais pas ajouter d'autres devices lampes et que je n'aurai plus la fonctionnalite de fade ? Si jamais on en restait là, oui. Mais là, la démarche est d’y aller par étape afin de localiser le problème, voir où cela coince, pour faire en sorte que ça marche intégralement à l’issue de ces tests Modifié le 5 mars 2020 par J3R3M 1
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 OK oui j'avais pas suivi que tu voulais testé avec les variables, au temps pour moi ;-) Ca s'allume ;-)
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 Me revoici sur ordi, on est repartis! Bon, donc la syntaxe fonctionne correctement, même en utilisant les valeurs de LightsList(). On continue! Tu peux remettre la fonction principale comme elle était, à savoir : -- Fonction Principale local TableReveil = json.decode(fibaro:getGlobalValue("REVEIL_"..PIECE)); local function reveil(LightsPower,LightsTps,SpeakersPower,SpeakersTps) LightsBtn(); LightsFade(LightsPower,LightsTps); SpeakersAction(); SpeakersFade(SpeakersPower,SpeakersTps); -- Changement Mode if TableReveil.Mode == 1 then TableReveil.Mode = 3; fibaro:setGlobal("REVEIL_"..PIECE, json.encode(TableReveil)); end end Et on va partir dans la fonction LightsFade() en espérant rapidement trouver où et pourquoi ça coince. Remplace ta fonction par celle-ci, enregistre cette nouvelle scène, programme un réveil quelconque depuis le VD, lance la scène et redis-mois si le ruban s'est allumé s'il-te-plaît. On va mettre l'action directe du fibaro:call() à différents niveaux de la fonction, afin de constater à quel moment elle n'est plus active. local function LightsFade(Puissance, TpsFade) Debug("green", "[LightsFade] -> Début de la fonction"); fibaro:call(LightsList[1].id, "setColor", LightsList[1].r, LightsList[1].g, LightsList[1].b, LightsList[1].w); for i=1,100 do for j=1,#LightsList do if LightsList[j].typ ~= "Shutter" and ( LightsList[j].mode == "AND" or ( Soleil.Etat == 1 and LightsList[j].mode == "OR" and not SunState() ) ) then if LightsList[j].typ == "VD" then fibaro:call(LightsList[j].id, "setSlider", tostring(LightsList[j].slider), math.ceil(i*Puissance/100)); elseif LightsList[j].typ == "Device" then fibaro:call(LightsList[j].id, "setValue", math.ceil(i*Puissance/100)); end Debug("grey","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] Allumé à "..i.."% de la valeur prédéfinie ("..Puissance..")", i); elseif ( LightsList[j].typ == "Shutter" and LightsList[j].mode == "AND" ) or ( LightsList[j].typ == "Shutter" and Soleil.Etat == 1 and LightsList[j].mode == "OR" and SunState() ) then local Pas = math.ceil(100/LightsList[j].pas); if Pas < 2 then Pas = 2; elseif Pas > 20 then Pas = 20; end if i < 100 then for k=1,tonumber(LightsList[j].pas) do if k*Pas == i then fibaro:call(LightsList[j].id, "setValue", i); Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] Ouvert à "..i.."%"); end -- Condition vérification valeur k*Pas end -- Boucle Valeurs de pas else fibaro:call(LightsList[j].id, "setValue", 100); Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] Ouvert à 100%"); end -- i < 100 elseif ( LightsList[j].typ == "RGBW" and LightsList[j].mode == "AND" ) or ( LightsList[j].typ == "RGBW" and Soleil.Etat == 1 and LightsList[j].mode == "OR" and SunState() ) then local facteur = math.floor(i*Puissance/10000); local red,green,blue,white = LightsList[j].r*facteur,LightsList[j].g*facteur,LightsList[j].b*facteur,LightsList[j].w*facteur; --fibaro:call(LightsList[j].id, "setColor", red, green, blue, white); --Debug("red","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] R: "..red.." - V: "..green.." - B: "..blue.." - W: "..white..", i); end -- Condition mod end -- Boucle device par device fibaro:sleep(TpsFade/100*60*1000); end -- Boucle 1->100 Debug("purple", "[LightsFade] -> Fin de la fonction"); end
pepite Posté(e) le 5 mars 2020 Signaler Posté(e) le 5 mars 2020 Yeah ;-) ALLUME avant la boucle ;-) Merci au fait.
J3R3M Posté(e) le 5 mars 2020 Auteur Signaler Posté(e) le 5 mars 2020 il y a 57 minutes, pepite a dit : Yeah ;-) ALLUME avant la boucle ;-) Merci au fait. Avec plaisir! On continue :-) Annule et remplace la fonction LightsFade par celle-ci : local function LightsFade(Puissance, TpsFade) Debug("green", "[LightsFade] -> Début de la fonction"); for i=1,100 do for j=1,#LightsList do if i == 50 then Debug("red", "Fibaro:call() OK"); fibaro:call(LightsList[j].id, "setColor", LightsList[j].r, LightsList[j].g, LightsList[j].b, LightsList[j].w); end if LightsList[j].typ ~= "Shutter" and ( LightsList[j].mode == "AND" or ( Soleil.Etat == 1 and LightsList[j].mode == "OR" and not SunState() ) ) then if LightsList[j].typ == "VD" then fibaro:call(LightsList[j].id, "setSlider", tostring(LightsList[j].slider), math.ceil(i*Puissance/100)); elseif LightsList[j].typ == "Device" then fibaro:call(LightsList[j].id, "setValue", math.ceil(i*Puissance/100)); end Debug("grey","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] Allumé à "..i.."% de la valeur prédéfinie ("..Puissance..")", i); elseif ( LightsList[j].typ == "Shutter" and LightsList[j].mode == "AND" ) or ( LightsList[j].typ == "Shutter" and Soleil.Etat == 1 and LightsList[j].mode == "OR" and SunState() ) then local Pas = math.ceil(100/LightsList[j].pas); if Pas < 2 then Pas = 2; elseif Pas > 20 then Pas = 20; end if i < 100 then for k=1,tonumber(LightsList[j].pas) do if k*Pas == i then fibaro:call(LightsList[j].id, "setValue", i); Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] Ouvert à "..i.."%"); end -- Condition vérification valeur k*Pas end -- Boucle Valeurs de pas else fibaro:call(LightsList[j].id, "setValue", 100); Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] Ouvert à 100%"); end -- i < 100 elseif ( LightsList[j].typ == "RGBW" and LightsList[j].mode == "AND" ) or ( LightsList[j].typ == "RGBW" and Soleil.Etat == 1 and LightsList[j].mode == "OR" and SunState() ) then local facteur = math.floor(i*Puissance/10000); local red,green,blue,white = LightsList[j].r*facteur,LightsList[j].g*facteur,LightsList[j].b*facteur,LightsList[j].w*facteur; --fibaro:call(LightsList[j].id, "setColor", red, green, blue, white); --Debug("red","[LightsFade] ["..LightsList[j].typ.." "..LightsList[j].id.."] R: "..red.." - V: "..green.." - B: "..blue.." - W: "..white..", i); end -- Condition mod end -- Boucle device par device fibaro:sleep(TpsFade/100*60*1000); end -- Boucle 1->100 Debug("purple", "[LightsFade] -> Fin de la fonction"); end
Messages recommandés