
Yorino
Membres confirmés-
Compteur de contenus
96 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Tout ce qui a été posté par Yorino
-
Bon, je suis parti sur l'option de travailler directement sur la String retournée en la découpant. Je ne vais récupérer que les 3 mêmes informations sur tous mes modules (T°, CO2 et Humidité) donc la découpe sera valable tout le temps, quelque soit le module interrogé. Il me reste à faire les créations des variables pour le stockage des infos, et la découpe finale. ;-) local function callback(response) if response.status == 200 then -- Action pour Réponse Ok fibaro:debug("Réponse Ok") ResultatMesure = string.sub(response.data, string.find(response.data, "body") + 21, string.find(response.data, "status") - 5) fibaro:debug(ResultatMesure)
-
J'ai essayé le json.decode mais sans succès. Je dois mal faire la manip je pense...
-
La réponse arrive bien et je récupère bien l'info qui m'intéresse à savoir la dernière mesure de la station. Et bien évidemment, bah je n'arrive pas à stocker les valeurs de la réponse dans des variables. Si vous avez une petite idée, pour ce soir j'arrête là je vais dodo... le code qui gère la réponse : if response.status == 200 then -- Action pour Réponse Ok fibaro:debug("Réponse Ok") fibaro:debug(response.data) Voila la réponse, et en gras la partie qui m'interesse : [DEBUG] 23:09:12: Réponse Ok [DEBUG] 23:09:12: {"body":{"1719346149":[24.8,433,65,1010.8,42]},"status":"ok","time_exec":0.017178058624267578,"time_server":1719349752}
-
Merci pour la réponse, alors j'ai testé le code ci dessus et même problématique. Du coup je suis reparti du code existant pour gérer le Token et Refresh Token et j'ai écris le code sur la même base et miracle, "Réponse Ok" ! Il ne me reste plus qu'à trouver comment décoder la réponse désormais.... ;-) Le morceau de code qui fonctionne : Clock = os.time()-3600 http:request("https://api.netatmo.net/api/getmeasure?", {options={ checkCertificate=false, method='POST', headers={['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8'}, data="access_token="..accessToken.."&device_id="..DeviceID.."&scale=1hour&type=Temperature,CO2,Humidity,Pressure,Noise&limit=2&optimize=false&real_time=true&date_begin="..Clock.."date_end="..os.time()}, success = callback, error = callback })
-
Bonjour à tous, Je reviens sur le sujet Netatmo car je sèche complètement avec mes maigres compétences en LUA. Mon besoin : Lire la station météo pour récupérer la valeur d'humidité d'un module externe. J'ai réussi a gérer l'histoire des Token et refresh Token. Ca fonctionne nikel pour mes 2 présences, j'arrive toujours à les actionner malgré la dernère update de securité de NetAtmo. Par contre la station Météo, impossible de comprendre comment écrire la requete http. Je me retrouve toujours avec le retour suivant : [DEBUG] 21:41:28: Erreur lors de la requête [DEBUG] 21:41:28: Statut HTTP : 400 [DEBUG] 21:41:28: Réponse : {"error":{"code":10,"message":"Argument(s) is(are) missing"}} Voici mon code LUA écrit avec les pieds.... Si une âme charitable peut me dire quoi écrire poru gérer la demande et stocker le résultat dans une variable ca serait top. ------------------------------------------------------------------------------------------------------------------------ --[[ %% properties %% events %% globals --]] -------------------------------------------------------------------------------------- -- Déclaration des fonctions local function callback(response) if response.status == 200 then -- Action pour Réponse Ok fibaro:debug("Réponse Ok") -- Code pour gérer la réponse de la requete. Stockage dans variable du résultat. else -- Gérer les erreurs ici fibaro:debug("Erreur lors de la requête") fibaro:debug("Statut HTTP : " .. response.status) fibaro:debug("Réponse : " .. response.data) end end -------------------------------------------------------------------------------------- -- Début du code fibaro:debug("Début de la scène, nombre d'instance: "..fibaro:countScenes()) -- Limitation à une seule scène en même temps. if (fibaro:countScenes() > 1) then fibaro:abort() end -- Etape 1 - Chargement des informations + ID de la station météo fibaro:debug("Etape 1 - Chargement des variables") local http = net.HTTPClient() -- Chargement des variables NetAtmo local clientId = fibaro:getGlobal('NetAtmoMeteoCltId') local clientSecret = fibaro:getGlobal('NetAtmoMeteoCltSc') local accessToken = fibaro:getGlobal('NetAtmoMeteo_Tk') local refreshToken = fibaro:getGlobal('NetAtmoMeteo_RTk') local homeID = fibaro:getGlobal('NetAtmoHome_Id') fibaro:debug("Chargement des variables effectués") -- Etape 2 - Contrôle et Refresh des tokens -- Requête HTTP POST contrôle et renouvellement des Tokens fibaro:debug("Etape 2 - Debut de procédure Refresh Token") http:request("https://api.netatmo.com/oauth2/token", {options={ checkCertificate=false, method='POST', headers={['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8'}, data="grant_type=refresh_token&client_id="..clientId.."&client_secret="..clientSecret.."&refresh_token="..refreshToken,timeout=40000}, success = function(response) label=pcall(function()chk_data=json.decode(response.data)if type(chk_data)~="table" then error() print("Erreur") else print("Table reçue") end end) fibaro:debug("Décodage des tokens reçus") -- affichage des informations reçues & traitement local NewToken = chk_data.access_token print("Nouveau Token:" .. NewToken) local NewRefresh = chk_data.refresh_token print("Nouveau RefreshToken:" .. NewRefresh) print("Délai expiration:" .. chk_data.expires_in) -- comparaison des données Token et action if accessToken ~= NewToken then fibaro:debug("Token différent - Remplacement dans les variables globales") fibaro:setGlobal('NetAtmoMeteo_Tk', NewToken) fibaro:debug("Nouveau Token :" .. fibaro:getGlobal('NetAtmoMeteo_Tk')) fibaro:setGlobal('NetAtmoMeteo_RTk', NewRefresh) fibaro:debug("Nouveau Refresh Token :" .. fibaro:getGlobal('NetAtmoMeteo_RTk')) else fibaro:debug("Token identique - Pas d'action") end -- comparaison des données RefreshToken et action if refreshToken ~= NewRefresh then fibaro:debug("RefreshToken différent - Remplacement dans les variables globales") fibaro:setGlobal('NetAtmoMeteo_RTk', NewRefresh) fibaro:debug("Nouveau Token :" .. fibaro:getGlobal('NetAtmoMeteo_RTk')) else fibaro:debug("Token identique - Pas d'action") accessToken = fibaro:getGlobal('NetAtmoMeteo_Tk') refreshToken = fibaro:getGlobal('NetAtmoMeteo_RTk') end -- Etape 2 - Interrogation Netatmo fibaro:debug("Début du code Action") accessToken = fibaro:getGlobal('NetAtmoMeteo_Tk') fibaro:debug(accessToken) refreshToken = fibaro:getGlobal('NetAtmoMeteo_RTk') fibaro:debug(refreshToken) DeviceID = fibaro:getGlobal('NetAtmoWeathSal_Id') fibaro:debug(DeviceID) ModuleID = fibaro:getGlobal('NetAtmoWeathGar_Id') fibaro:debug(ModuleID) http:request("https://api.netatmo.net/api/getmeasure", {options = {method = 'GET', headers = { ["Content-Type"] = "application/json", }, "access_token="..accessToken.."&device_id="..DeviceID.."&module_id="..ModuleID.."&scale=1hour&type=Humidity&limit=1&optimize=false&real_time=false&date_End="..os.date(), }, success = callback, error = callback }) end, error = function(error) fibaro:debug("Failed to authenticate: " .. error) end })
-
Bon bah du coup je viens de comprendre en rédigeant le post, c'est une question de droits que je n'avais pas accordé au niveau du HC2 à l'utilisateur JPI... Voilà au cas où !
-
Bonjour, Bon je ne sais pas si c'est le bon endroit pour poster ce type de demande, désolé d'avance. Bref, je galère sur une connerie sans doute.. J'ai un serveur JPI sur un smartphone, lui même alimenté via un wallplug fibaro. J'ai tenté de mettre dans les action de JPI au niveau du contrôle de la batterie un hc_turnon et hc_turnoff. J'ai bien mis le devine id du wallplug, mais JPI me retourne une erreur 404... Je pige pas. Une âme charitable pour m'aider ?
-
Je ne trouve aucune "grande marque" pour ce format. Je vais tenter Eve comme tu cites, on verra bien
-
Bonjour à tous, Question peut-être bête, mais où achetez vous vos piles ER1450 (détecteur ouverture) ? J'en ai une série achetées sur Amazon, mais franchement 1 sur 2 est considérée comme HS par la HC2.... Je suis preneur d'une bonne info. A+
-
Bon donc sur tes conseils et sur ton très bon post d'explication de la requête net.http, je pense avoir réussi à piloter a nouveau mes projecteurs Netatmo Presence ! J'attends de tester sur plusieurs jours avant de partager mon humble code sur un sujet dédié. A+
-
Yes, après avoir lu plusieurs fois, il faut que je continue mon code dans le success. Je vais donc y travailler.
-
Je viens de lire ton post, super intéressant, je ne l'avais pas trouvé avant. Pas certain d'avoir tout pigé mais je vais y bosser dessus.
-
Je suis sur Hc2. Et c'est bien ce que je pensais avoir compris en lisant d'autres sujet sur ce forum... Bon bah on va trouver une autre solution hein... Merci Lazer, toujours de bons conseils.
-
Bonjour à tous, Je ne savais pas trop où poster ma demande, donc je choisis le Bistrot. Je ne suis pas programmeur, je bidouille. Et je bug sur l'utilisation des fonctions dans une scène écrite en lua. J'ai donc une scène qui doit avoir le déroulement suivant. Étape 1 - interrogation d'une api via un http.request Étape 2 - on récupère les données transmise à l'étape 1. Étape 3 - on fait une nouvelle interrogation d'une autre api. J'ai donc écris ce que je pense être la colonne vertébrale de mon programme avec les 3 étapes. Et pour chaque étape, j'appelle une fonction que j'ai déclaré dans au début de la scène. (Au dessus de mon code principal). Sauf que j'ai l'impression, en visualisant les fibaro:debug que j'ai mis un peu partout pour voir où en est mon code, que le programme n'attends pas la fin de l'exécution de la fonction pour poursuivre sa route. Je me trompe ?
-
J'ai vu des choses sur HC3 qui pilote a priori via l'IP local... Mais n'ayant pas de HC3 difficile de comprendre. Je ne trouve rien dans la Doc netatmo non plus. Bref je continue mes tests...
-
Bon en tout cas de mon côte pour Présence c'est dead. Impossible de la commander via mes anciens scripts php. J'arrive à la piloter (On/Off/Auto) via le token généré sur la page netatmo dev, mais ce dernier expire au bout de 5 minutes. Actuellement, je n'arrive pas à trouver une solution pour générer le token via la HC2 en Lua.
-
Bonsoir, Bon je suis équipé en Netatmo et bien-sûr le plugin HC2 ne fonctionne pas... Impossible de récupérer une information sur la pluviométrie... J'ai connecté mon compte Netatmo avec mon GH, mais la question est désormais de savoir si par ce biais, il est possible de : - récupérer des infos des appareils Netatmo (surtout la pluviométrie) sur la HC2 en passant par GH ? - piloter les caméras présence en passant par GH depuis la HC2. je ne sais pas si j'ai été super clair...
-
Topic unique Fibaro - Smoke Detector - Fgsd-002
Yorino a répondu à un(e) sujet de Fanou dans Modules Fibaro
Oui, et je fais l'auto test ensuite. Par contre une question, quelle marque/modèle de pile utilisez vous ? La j'ai des Rawpower, et malgré la mesure de 3v au multimètre, j'ai l'impression que les détecteurs incendie ne les aiment pas trop... -
Topic unique Fibaro - Smoke Detector - Fgsd-002
Yorino a répondu à un(e) sujet de Fanou dans Modules Fibaro
Oui, mais malgré ceci il bip toutes les 50 secondes avec le voyant jaune... Exclusion/inclusion mais rien de change. Un peu déçu, même si c'est pas une grande qualité à la base, avoir un problème de ce type c'est pas top. -
Topic unique Fibaro - Smoke Detector - Fgsd-002
Yorino a répondu à un(e) sujet de Fanou dans Modules Fibaro
Bon bah souci similaire à plusieurs personnes sur le forum, alarme de pile faible même après avoir changé cette dernière... 2 Détecteurs dans le sac déjà, pas vraiment fiable l'histoire.... Quelqu'un a trouver une solution ? A+ -
Ok c'est clair. Merci pour ta réponse Lazer.
-
Bon alors en fouillant le forum, je viens de trouver qu'un backup local ne peut être restauré que sur la même box. Donc je sais d'où vient mon message d'erreur... Du coup, il faut passer par le cloud... Mais là je sèche et j'ai peur de faire une connerie.
-
Bonjour à tous, Ma HC2 montre parfois des signes de faiblesse (plantage, redémarrage laborieux etc...), bref, je me suis donc procuré une seconde HC2. La grande question est : comment je duplique la 1ere sur la 2nd ? J'ai testé en essayant d'installer le backup de la 1ere sur la 2nd mais sans succès. J'ai un message d'erreur sur la 2nd hc2... Please help. Merci
-
topic unique Fibaro FGBS-222 Smart Implant - Détecteur Universel Z-Wave+
Yorino a répondu à un(e) sujet de Lazer dans Modules Fibaro
Hello, J'aimerai me servir du Smart Implant pour contrôler 2 relais, soit via une scène, soit via 2 interrupteurs. Sauf que dans la doc, ils disent de brancher ainsi. (4.8) Je ne pige pas comment le module peut rester alimenter avec ce montage... Quelqu'un pour m'éclairer ? -
Topic unique Fibaro FGBS-321 Module Universel
Yorino a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Hello, Question sur le Fgbs-001, y'a t-il moyen de changer sa configuration via une commande dans une scène. Je voudrais que la configuration de l'état des relais (NO/NF) puisse ce modifier en fonction de certains paramètres. Merci,