Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Steven

    API HTTP

    Ah, et vérifie que l'utilisateur Zibase a bien les droits sur ce VD 110.
  2. fibaro:startScene(24, {{id = 74}, {element=0}, {color = "cyan"}, {text="Coucou"}}) et la scène suivante : function log(id, element, msg, color, err) for spacestodo, nombre in string.gmatch(msg, "(#spaces(%d+)#)") do local dots = "" for i = 1, nombre do dots = dots .. "." end msg = string.gsub(msg, spacestodo, "<span style=\"color:black;\">"..dots .."</span>") end msg = "<span style=\"color:"..(color or "white")..";\">"..msg.."</span>" fibaro:call(id, "addDebugMessage", element, msg, err or "debug") end local params = fibaro:args() local id = 74 local message = "" local element = 0 local color = "white" local err = "debug" if (params) then for k, v in ipairs(params) do if (v.id) then id = v.id end if (v.text) then message = v.text end if (v.element) then element = v.element end if (v.color) then color = v.color end if (v.err) then err = v.err end end end if (id) then log(id, element, message, color, err) end
  3. Pour les VD, on pourrait créer une scène paramétrée qui affiche des "debug" de couleurs différentes :
  4. ------------------------------------- AJOUT DE DEBUG DANS UN VD ----------------------------------- Tout le monde qui à, au moins une fois, touché le LUA de sa HC2 à du tapper cette commande : fibaro:debug("Mon texte ici") Cela permet donc d'afficher un texte dans la petite fenêtre de debug. Pour un VD (je n'ai pas encore trouvé pour une scène), il est possible d'envoyer un message, dans cette même fenêtre de debug, mais depuis n'importe où. En utilisant cette commande : fibaro:call(74, "addDebugMessage", 0, "Je viens d'ailleurs - erreur", "error") fibaro:call(74, "addDebugMessage", 2, "Je viens d'ailleurs - debug", "debug") error : affichera en rouge debug : affichera en blanc Voici la syntaxe fibaro:call(<ID_DU_VD>, "addDebugMessage", <ELEMENT_ID>, <MESSAGE>, "debug|error") -- ELEMENT_ID = ID du bouton ou 0 pour le main loop Cette info peux vous sembler inutile et pourtant, j'y vois 2 intérêts : Savoir qui a cliqué un bouton (si le bouton a été "cliqué" par une scène, on peux l'afficher dans le debug "Bouton cliqué par la scène 22 à HH:mm:ss") Via une scène paramétrée, afficher des debug de couleurs différent (exemple : fibaro:startScene(10, {{id=20, text="Mon texte ici", color="cyan"}}) Voilà, je vous laisse y méditer.
  5. Steven

    API HTTP

    Je suis prêt à parier que dans ton VD (110), ton bouton est en dessous d'un label ou autre chose ?
  6. Steven

    Pushbullet

    Je suis repassé par "Pushingbox" pour faire du "Pushbullet". Pushingbox est un service ("PushingBox, Notifications for your Internet of Things devices") qui permet pas mal de truc, j'ai donc déclaré mes identifiants Pushbullet dans celui-ci. Puis j'ai créé le service associé : Notez le DeviceID signalé par la flêche Ensuite, j'ai un VD avec un bouton qui contient le code suivant : if (fibaro:getGlobalValue("NotificationStatus") == "OFF" or fibaro:getGlobalValue("NotificationStatus") == "HOUR") then return end local host = "api.pushingbox.com" local devid="v7C8XXXXXXXXXXX" local fullurl = "/pushingbox?devid=" .. devid local msg = fibaro:getGlobal("Notification"):gsub(" ", "+") if (msg ~= "") then Pushing = Net.FHttp(host) response = Pushing:GET(fullurl .. "&message="..msg) local d = os.date("%x %X") fibaro:debug(d .. " | PushingBox : " .. msg) end Et voilà
  7. Steven

    Pushbullet

    Toujours pas solutionné.
  8. Bonjour tout le monde (je rentre de vacances) ... Relancer le VD par Watchdog alors que c'est la scène qui plante ??? Moi pas tout comprendre. Perso, je fais juste ainsi : -- Timer toutes les 10 minutes GEA.add( true , 10*60, "", { {"Scenario", id["WAZE_SCENE"]}, {"Repeat"} }) Et j'ai désactivé le polling dans la scène : -- setTimeout(function() GetWazeData(idx) -- end, params[idx].pollingMs) Et voilà. La scène, sera relancée toutes les 10mn, si elle plante, on s'en fiche car elle sera relancée par GEA dans 10mn.
  9. Perso, j'utilise GEA qui refresh la scène toutes les 10mn ainsi si ça ce casse la figure, c'est pas grave, ça redémarrera dans 10mn.
  10. Un scénario : local id_de_la_scene_qui_attend = xxxxxxx local id_de_la_scene_qui_eteint = 330 local smartphones = {268} api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]="Voulez-vous les éteindre ?", ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=id_de_la_scene_qui_eteint} } ) fibaro:startScene(id_de_la_scene_qui_attend) Et le deuxième : --[[ %% properties 184 value --]] local id_de_cette_scene = 339 -- !!!! ATTENTION ICI !!!! local id_de_la_scene_question = XXXXXX local delai = 20000 local id_spots = 184 local smartphones = {268} local allume = tonumber(fibaro:getValue(id_spots, "value")) > 0 if (not allume) then -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées fibaro:killScenes(id_de_cette_scene) elseif (fibaro:countScenes() <= 1) then setTimeout(function() api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]="Les spots de la salle à manger sont allumé depuis plus d'1h30, voulez-vous faire quelque chose ?", ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=id_de_la_scene_question} } ) end, delai ) end
  11. Sniffff
  12. Tu peux toujours, en fin de traitement d'une scène, rappeler ta scène initial en lui repassant les paramètres d'entrées et les résultats :-) C'est clair que c'est pas optimiser pour certain traitement mais comme tu dis on va ENFIN pourvoir mutualiser du code.
  13. J'ai trouvé et c'est ... GENIAL ... ils l'ont fait .. le passage de paramètres à un scénario. Exemple : fibaro:startScene(20, {{prenom = "Steven"}, {nom = "Piccand"}}) Puis la scene 20 est composée ainsi : local params = fibaro:args() if (params) then for k, v in ipairs(params) do if (v.nom) then print("Nom : " .. v.nom) end if (v.prenom) then print("Prénom : " .. v.prenom) end end end Et voici le résultat : [DEBUG] 16:57:20: Prénom : Steven [DEBUG] 16:57:20: Nom : Piccand
  14. Steven

    VD - Ephemeride

    C'est pas super optimisé mais cela fait le travail. Voici le code du Main Loop if (not ephemeris) then ephemeris = { [1] = {"Jour de l''An","Basile","Geneviève","Odilon","Edouard","Mélaine","Raymond","Lucien","Alix","Guillaume","Pauline","Tatiana","Yvette","Nina","Rémi","Marcel","Roseline","Prisca","Marius","Sébastien","Agnès","Vincent","Barnard","François de Sales","Conversion de Paul","Paule","Angèle","Thomas d''Aquin","Gildas","Martine","Marcelle"}, [2] = {"Ella","Fête de la Présention","Blaise","Véronique","Agathe","Gaston","Eugènie","Jacqueline","Apolline","Arnaud","Notre Dame de Lourdes","Félix","Béatrice","Valentin","Claude","Julienne","Alexis","Bernadette","Gabin","Aimée","Mercredi des Cendres","Isabelle","Lazare","Modeste","Roméo","Nestor","Honorine","Romain","Auguste"}, [3] = {"Aubin","Charles le Bon","Guénolé","Casimir","Olive","Colette","Félicité","Jean de Dieu","Françoise","Vivien","Rosine","Justine","Rodrigue","Mathilde","Louise","Bénédicte","Patrice","Cyrille","Joseph","Herbert","Clémence","Léa","Victorien","Karine","Anne","Larissa","Habib","Gontran","Gwladys","Amédée","Benjamin"}, [4] = {"Hugues","Sandrine","Richard","Isidore","Irène","Marcellin","Jean-Baptiste de la Salle","Julie","Gautier","Fulbert","Stanislas","Jules","Ida","Maxime","Paterne","Benoît-Joseph","Anicet","Parfait","Emma","Odette","Anselme","Alexandre","Georges","Fidèle","Marc","Alida","Zita","Valérie","Catherine de Sienne","Robert"}, [5] = {"Fête du travail","Boris","Philippe","Sylvain","Judith","Prudence","Gisèle","Armistice de 1945","Pacôme","Solange","Estelle","Achille","Rolande","Matthias","Denise","Honoré","Pascal","Eric","Yves","Bernardin","Constantin","Emile","Didier","Donatien","Sophie","Bérenger","Augustin","Germain","Aymar","Ferdinand","Ferdinand"}, [6] = {"Justin","Blandine","Kévin","Clotilde","Igor","Norbert","Gilbert","Médard","Diane","Landry","Barnabé","Guy","Antoine de Padoue","Elisée","Germaine","Jean-François Régis","Hervé","Léonce","Romuald","Silvère","Solstice d''été","Alban","Audrey","Jean-Baptiste","Prosper","Anthelme","Fernand","Irénée","Pierre","Martial"}, [7] = {"Thierry","Martinien","Thomas","Florent","Antoine","Mariette","Raoul","Thibault","Amandine","Ulrich","Benoît","Olivier","Henri","Fête Nationale","Donald","Fête de Notre Dame du Mont Carmel","Charlotte","Frédéric","Arsène","Marina","Victor","Marie-Madeleine","Brigitte","Christine","Jacques","Anne","Nathalie","Samson","Marthe","Juliette","Ignace de Loyola"}, [8] = {"Alphonse","Julien Eymard","Lydie","Jean-Marie Vianney","Abel","Fête de la Transfiguration","Gaétan","Dominique","Amour","Laurent","Claire","Clarisse","Hippolyte","Evrard","Fête de l''Assomption","Armel","Hyacinthe","Hélène","Jean-Eudes","Bernard","Christophe","Fabrice","Rose de Lima","Barthélémy","Louis","Natacha","Monique","Augustin","Sabine","Fiacre","Aristide"}, [9] = {"Gilles","Ingrid","Grégoire","Rosalie","Raïssa","Bertrand","Reine", "Sao,te","Fête de la Nativité","Alain","Inès","Adelphe","Apollinaire","Aimé","Fête de la Croix Glorieuse","Roland","Edith","Renaud","Nadège","Emilie","Davy","Matthieu","Maurice","Equinoxe d''Automne","Thècle","Hermann","Côme","Vincent de Paul","Venceslas","Michel","Jérôme"}, [10] = {"Thérèse de l''Enfant Jésus","Léger","Gérard","François d''Assise","Fleur","Bruno","Serge","Pélagie","Denis","Ghislain","Firmin","Wilfried","Géraud","Juste","Thérèse d''Avila","Edwige","Baudoin","Luc","René","Adeline","Céline","Elodie","Jean de Capistran","Florentin","Crépin","Dimitri","Emeline","Jude","Narcisse","Bienvenue","Quentin"}, [11] = {"Toussaint","Fête des défunts","Hubert","Charles","Sylvie","Bertille","Carine","Geoffroy","Théodore","Léon","Armistice de 1918","Christian","Brice","Sidoine","Albert","Marguerite","Elisabeth","Aude","Tanguy","Edmond","Présence de Marie","Cécile","Clément","Flora","Catherine","Delphine","Sévrin","Jacques de la Marche","Saturnin","André"}, [12] = {"Florence","Viviane","François-Xavier","Barbara","Gérald","Nicolas","Ambroise","Fête de l''Immaculée Conception","Pierre Fourier","Romaric","Daniel","Jeanne-Françoise de Chantal","Lucie","Odile","Ninon","Alice","Gaël","Gatien","Urbain","Théophile","Solstice d''Hiver","Françoise-Xavière","Armand","Adèle","Noël","Etienne","Jean","Innocents","David","Roger","Sylvestre"} } end local m, j = string.match(os.date("%m %d"), "(%d+) (%d+)") fibaro:call(fibaro:getSelfId(), "setProperty", "ui.ephemeride.value", ephemeris[tonumber(m)][tonumber(j)]) Ephéméride.vfib
  15. @Krikroff DEEBBBBOOOOOOUUUUUUUUTTTTTTTTTT
  16. Laisse tomber le pcall() n'arrive pas traiter cette erreur, mon script, bien que protégé par le pcall, vient de planter.
  17. Quelqu'un a des infos sur cette nouvelle fonction ? fibaro.args = function(self) return __fibaro_args; end
  18. En effet, cela ne fonctionne pas ... le OUI déclenche les 2 scénarios et le NON ne fait rien. Avec ce système, il n'y a pas moyen de faire ce que tu demandes. La seule solution serait de faire 2 demandes : 1. "Les spots de la salle à manger sont allumé depuis plus d'1h30, voulez-vous faire quelque chose ?" Si tu fais NON ben plus rien ne se passe 2. "Voulez-vous les éteindre ?" OUI cela les éteints, NON cela va attendre à nouveau 1h30 et relancer le scénario 1.
  19. Non, la scène ne se relance pas automatiquement, en fait, tu as une instance qui tourne pendant 1h30 ou 5mn et qui au bout de ce laps de temps, te demande quoi faire : 1. OUI = Eteindre la lumière (sceneID = 330) 2. NON = Relancer ce même scénario (sceneID = xxxx) Si tu ne fait rien, le scénario ne va pas continuer. Tu n'auras donc pas 2 fois le même scénario qui tourne.
  20. Donc si tu appuie sur OUI, on éteint et donc cela arrête tout ... ça c'est fait. Mais si tu appuies sur NON, tu aimerais donc ... simplement relancer ce même scénario ? Il me semble qui suffirait de faire ainsi : local id_de_cette_scene = 18 -- !!!! ATTENTION ICI !!!! <-- on y met tout en haut local delai = 60000 local id_spots = 108 local smartphones = {84} local scenes = {["sceneId"]=330, ["sceneId"]=id_de_cette_scene} -- <--- on change ici
  21. Voici la version définitif avec la suppression des messages multiple : --[[ %% properties 108 value --]] local delai = 60000 local id_spots = 108 local smartphones = {84} local scenes = {["sceneId"]=330} local id_de_cette_scene = 18 -- !!!! ATTENTION ICI !!!! local allume = tonumber(fibaro:getValue(id_spots, "value")) > 0 if (not allume) then -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées fibaro:killScenes(id_de_cette_scene) elseif (fibaro:countScenes() <= 1) then setTimeout(function() api.post('/mobile/push', { ["mobileDevices"]=smartphones, ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', ["title"]='Question:', ["category"]='YES_NO', ["data"]=scenes } ) end, delai ) end Chez moi cela ne fonctionne pas avec mon RGB pour la raison suivante : étrangement, lorsque je l'allume, il me déclenche systématiquement 2 instance du scénario en même temps. J'espère que tu n'auras pas ce problème.
  22. Je pense avoir trouvé ... fibaro:killScene() n'existe pas c'est fibaro:killScenes() avec un "s" a la fin ... c'est logique vu qu'on kill qu'une seule scène .... m'ennnnfffffffiiinnnnnn.
  23. Faudra que je fasse des tests ce soir, j'y arrive pas avant.
  24. Tente avec "value" à la place de "power" et allume et éteint juste ton ruban pour tester.
  25. Je suppose que tu as bien vérifié et que l'ID 341 est bien l'ID de cette nouvelle scène ? A part cela, je ne vois pas pourquoi cela ne fonctionnerais pas.
×
×
  • Créer...