Aller au contenu

Toute l’activité

Ce flux se met à jour automatiquement     

  1. Today
  2. Support Gea

    Bonjour, @sumsum, L aleatoire est l ennemi du debug :-) @971jmd GEA.add({"Power-", 364, 0,3}, 30, "", {"Global", "MULTIPKEX", "0"}) Envoyé de mon BND-L21 en utilisant Tapatalk
  3. Support Gea

    salut a tous je cherche un moyen de convertir ce code lua dans GEA si la conso de ma WP est inférieur ou égale à 0.3w local startSource = fibaro:getSourceTrigger(); if ( ( tonumber(fibaro:getValue(364, "power")) <= 0.3 ) or startSource["type"] == "other" ) then fibaro:setGlobal("MULTIPLEX", "0"); end
  4. Hier
  5. Alexa version Beta French

    je refais une recherche et je supprime les actionneurs qui ne servent pas de la liste des appareils sur alexa pour avoir une liste claire pour alexa.
  6. Utilisation de net.HTTPClient() asynchrone dans une scène

    Ahah tu ne peux pas parler à Alexa alors hop un petit tuto [emoji16][emoji16][emoji16] Merci c est top :-) Envoyé de mon BND-L21 en utilisant Tapatalk
  7. Alexa version Beta French

    On est d'accord il est préférable de renomer les Device dans la HC 2 pour que ce soit plus facile mais alors faut il refaire un search depuis alexa ou va elle updater automatiquement ?
  8. Json T_end

    Oh cool ! Merci beaucoup je vais prendre une aspirine avant
  9. Utilisation de net.HTTPClient() asynchrone dans une scène

    Ah c'est cool comme mini tuto ça... je bookmark
  10. Json T_end

    Bloug, désolé, toujours pas de code LUA, mais j'ai rédigé un mini tuto qui, je l'espère, t'aidera un peu à y voir plus clair :
  11. Alexa version Beta French

    J'avais aussi débranché électriquement alexa à un un moment avant de l’enregistrer avec une adresse UK, (je ne sais plus a quel moment) pour qu'elle refasse la procédure avec le wi-fi. J'ai tenté de commander d'autres volets après les avoir renommés en phonétique sur la HC2 ; example: volet Est ---> volet aist; mais alexa a du mal a les piloter : exemple de conversation pour le volet sud (je n'ai qu'un appareil nommé volet sud). c'est pas au point du tout......(ce sont des modules qubino) "règle volets sud à zéro pour cent" "Plusieurs éléments portent ce nom. Lequel voulez-vous ?^" "volets sud" "Plusieurs éléments portent ce nom. Lequel voulez-vous ?^" "volets sud" "Je suis désolée, je n'ai pas compris." Et des fois , le miracle..... "règle le volet ouest à cent pour cent" "D’accord" conclusion: il faut donner des nom très simple aux modules dans la HC2, et bien articuler "Le volet ouest "
  12. Executer net.HTTPClient() en début de scène

    Voilà : Par contre c'est fait à la va-vite, je n'ai pas testé le code LUA, j'espère qu'il n'y a pas d'erreur de syntaxe. N'hésitez par à me corriger. Sinon pour @J3R3M, comme tu peux le voir, cela intrigue beaucoup de monde, exemples : https://www.domotique-fibaro.fr/topic/9055-incomprã©hension-dans-les-nethttpclient/ https://www.domotique-fibaro.fr/topic/10888-nethttpclient-contourner-lasynchrone-cest-possible/ https://www.domotique-fibaro.fr/topic/10900-comportement-du-timeout-dans-les-nethttpclient/ https://www.domotique-fibaro.fr/topic/11558-récupérer-les-données-retournées-par-nethttpclient/
  13. Utilisation de net.HTTPClient() asynchrone dans une scène en LUA Dans les scènes, Fibaro ne nous laisse pas le choix, dès que l'on veut faire des appels HTTP, on est obligé d'utiliser la fonction asynchronse net.HTTPClient(). La fonction Net.FHTTP() synchrone utilisée dans les VD n'est pas disponible dans les scènes. Toutefois, l'avantage de net.HTTPClient() est d'accepter les connexions sécurisées HTTPS devenues majoritaires sur Internet. Exemple de code simple pour une requête de type GET local http = net.HTTPClient() http:request("http://1.2.3.4/url", { success = function(response) if response.status == 200 then fibaro:debug('OK, réponse : '.. response.data) else fibaro:debug("Erreur : status=" .. tostring(response.status)) end end, error = function(err) fibaro:debug("Erreur : " .. err) end, options = { method = 'GET' } }) L'exemple suivant effectue une requête de type POST permettant d'envoyer des données vers le site distant. De plus, la fonction success() récupère les données de type JSON en vue d'un traitement ultérieur (notez que les données envoyées vers le site Web et les données reçues depuis le site Web sont différentes, cela dépend de l'application qui tourne sur le site) : -- Les données à envoyer au formulaire local myJson = { "couleurs": { [1] = "bleu", [2] = "blanc", [3] = "rouge" }, "fruits": { [1] = "pomme", [2] = "banane" }, } -- Appel HTTPS local http = net.HTTPClient() http:request("https://www.domaine.com/url", { success = function(response) if response.status == 200 then if response.data and response.data ~= "" then fibaro:debug('Retour : '.. response.data) local jsonTable = json.decode(response.data) -- Parcours de la table JSON local k, v for k, v in pairs(jsonTable) do fibaro:debug("key = " .. k .. " - type(v) = " .. type(v)) end -- Ici la suite du code, exécuté en asynchrone, donc après la fin de l'exécution du code appelant http:request() -- ... else fibaro:debug("Error : empty response data") end else fibaro:debug("Erreur : status=" .. tostring(response.status)) end end, error = function(err) fibaro:debug("Erreur : " .. err) end, options = { method = 'POST', headers = { ["content-type"] = 'application/x-www-form-urlencoded;' }, data = json.encode(myJson) } }) -- Ici la suite du code, exécuté en synchrone, donc avant l'exécution du contenu de la fonction success() -- ... On remarque dans les options que l'on peut choisir les paramètres suivants : method : obligatoire : GET ou PUT ou POST ou DELETE headers : facultatif : permet de passer le(s) en-tête(s) HTTP de son choix vers le site Web distant. Si vous ne savez pas ce qu'est un Header, c'est que vous n'avez probablement pas besoin d'envoyer de header, donc ignorez ce paramètre. data : facultatif : ce sont les données à envoyer dans les formulaires POST et PUT sous forme de chaine de caractère. Donc si les données sont de type tableau JSON, il faut les encoder avec json.encode(). Asynchronisme net.HTTPClient() est asynchrone, le code dans les fonctions success() et error() appelées en callback s'exécute toujours après la fin de l'exécution du thread principal. Quand on commence à programmer en asynchrone, il ne faut plus jamais utiliser de fonctions synchrones comme sleep(), sous peine de comportement surprenant. Préférer à la place l'emploi de la fonction settimout() qui est elle-même asynchrone (chercher les exemples sur le forum) La bonne pratique quand on programme en asynchrone est la suivante : Après un appel à net.HTTPClient(), le code devrait se terminer le plus rapidement possible afin de laisser la main à la fonction success() appelée en callback de net.HTTPClient(). La suite du code se déroule donc dans la fonction success(). Celle-ci, à sont tour, peut faire d'autres appels à net.HTTPClient() ou settimeout() pour déclencher de nouveaux appels de fonctions en callback asynchrone. Etc... C'est la technique que j'ai employé dans mes scènes Watchdog et Yamaha MusicCast, partagées sur le forum. C'est une certaine gymnastique qui n'est pas évidente au début, et oblige à revoir toute la structure de son code LUA.
  14. Executer net.HTTPClient() en début de scène

    Oui maitre
  15. Executer net.HTTPClient() en début de scène

    @Lazer, GENIAL cette explication très didactique. Le problème, c'est que on la lu maintenant, mais on ne retrouvera plus jamais cette info. Alors un petit tuto avec pour titre : net.HTTPClient() asynchrone dans scènes et le corps du texte, un ctrl+C/V de ton explication ?
  16. Executer net.HTTPClient() en début de scène

    C'est un sujet qui revient souvent sur le forum net.HTTPClient() est asynchrone, le code dans les fonctions appelées en callback s'exécute toujours après la fin de l'exécution du thread principal. Quand on commence à programmer en asynchrone, il ne faut plus jamais utiliser de fonctions synchrones comme sleep(), sous peine de comportement surprenant comme tu l'as constaté. Préférer à la place l'emploi de la fonction settimout() qui est elle-même asynchrone (chercher les exemples sur le forum) La bonne pratique quand on programme en asynchrone est la suivante : Après un appel à net.HTTPClient(), le code devrait se terminer le plus rapidement possible afin de laisser la main à la fonction success() appelée en callback de net.HTTPClient(). La suite du code se déroule donc dans la fonction success(). Celle-ci, à sont tour, peut faire d'autres appels à net.HTTPClient() ou settimeout() pour déclencher de nouveaux appels de fonctions en callback asynchrone. Etc... C'est la technique que j'ai employé dans mes scènes Watchdog et Yamaha MusicCast, que tu peux étudier par exemple. C'est une certaine gymnastique qui n'est pas évidente au début, et oblige à revoir toute la structure de son code LUA. Malheureusement Fibaro ne nous laisse pas le choix dans les scènes, dès que l'on veut faire des appels HTTP, on est obligé d'utiliser la fonction asynchronse net.HTTPClient(). La fonction Net.FHTTP() synchrone utilisée dans les VD n'est pas disponible dans les scènes.
  17. Executer net.HTTPClient() en début de scène

    Peux-tu nous mettre un exemple de code qui ne fonctionne pas comme tu v(par exple avec le sleep et le abort)?
  18. Alexa version Beta French

    Bon j’vais allez sur le PC alors ....
  19. Alexa version Beta French

    oui il y a un popup qu'il faut autoriser. Essaye avec un autre navigateur.
  20. Roomba Irobot Domotisé

    une vidéo de test un peu longue mais qui montre tout
  21. Alexa version Beta French

    Lorsque le shop amazon te dis qu’il faut linker fibaro c’est sensée ouvrir une autre page web en pop-up ? car bizarrement avec safari ( anti pub fermé) rien ne ce passe
  22. Bonjour à tous, J'utilise la fonction net.HTTPClient() dans mes scènes de pièces afin de m'envoyer des SMS via une passerelle. Cependant, depuis quelques jours, j'ai remarqué que cette requête, bien que placée en début de script, n'est pas exécutée avant la fin du script de ma scène. En effet, j'ai remarqué que si je mettais un fibaro:sleep(10000) bien après cette commande net.HTTPClient(), je recevais le SMS 10 secondes plus tard. Le problème étant que, dans mes scènes de pièce, je suis amené à les annuler en cours si elle ne sont plus nécessaires avec fibaro:abort(). Ce qui fait que je ne reçois jamais les SMS... Dans ces conditions, comment forcer l'exécution de cette commande en début de scène ? Pour moi, le LUA éta Merci d'avance de vos réponses !
  23. https://www.dealabs.com/bons-plans/nouveaux-clients-abonnement-mensuel-au-forfait-mobile-red-by-sfr-sans-engagement-et-a-vie-appelssmsmms-illimites-30-go-de-data-en-france-et-3-go-en-europe-1233476 Envoyé de mon SM-G901F en utilisant Tapatalk
  24. APP 2.23, IOS 11.4.1, iPhoneX

    Bon sans rien faire (pas de désinstallation) le bug n’est pas revenu sur aucune de nos Iphone (3 en tout. 2 iPhone 8 et 1 5se) On verra si ça dure.
  25. Google Home

    La coupe du monde de quoi ?
  26. Google Home

    @lazer tu peux demander à alexa si l'Allemagne va gagner la coupe du monde [emoji23] J'ai un pari à faire [emoji23] Envoyé de mon SM-G901F en utilisant Tapatalk
  1. Charger plus d’activité
×