Sakkhho Posté(e) le 17 décembre 2017 Signaler Posté(e) le 17 décembre 2017 (modifié) Bonjour à tous. En cette période de pré-fete, rien de tel que de savoir si on aura droit à reprendre du fois gras :-) Si vous avez une balance NokiaBody ou Withings (je pense que cela fonctionne aussi) je vous propose d'intégrer les données dans la HC2. Pas d'utilité domotique à 1ere vue mais c'est simplement pour tout avoir sous le meme dashboard... Nokia mettant à disposition un api; il faut simplement récupérer les clés et token. Etape 1 : - créer son compte sur developper https://account.health.nokia.com/connectionuser/account_login?r=https%3A%2F%2Fdeveloper.health.nokia.com%2Fpartner%2Fadd - créer son application (à la manière de netatmo) et récupérer les API KEY et API SECRET - ensuite suivez les étapes 1 à 4 ici ; https://developer.health.nokia.com/api#first_steps A la fin de l'etape 4 vous aurez donc l'URL qui permet d'attaquer l'API Etape 2 : - importer le VD ci dessous : Nokia_Body+.vfib - renseignez votre taille en mètre sur la 1ere ligne - copier coller à partir de l'url que vous avez récupérer à l'étape 1 après "/measure?action=getmeas&oauth_consumer_key=" - changer l'icone et voilà normalement vous avez tout ... c'est très basique, c'est une V1.0 - si vous avez des idées on peut faire différemment... A+ Modifié le 17 décembre 2017 par Sakkhho 2
PdB Posté(e) le 17 décembre 2017 Signaler Posté(e) le 17 décembre 2017 Bravo! beau boulot ! Ça va aider à tenir le cap! Chez moi j'ai plusieurs "users" enregistrés sur la meme balance. Cela fonctionne impec pour le 1er mais pour le second, alors que j'obtiens une url qui est apparemment bonne j'ai le retour suivant ds le VD: [ERROR] 21:55:23: line 17: attempt to index field '?' (a nil value)
pepite Posté(e) le 17 décembre 2017 Signaler Posté(e) le 17 décembre 2017 Félicitations :-) Well doneEnvoyé de mon Nexus 5X en utilisant Tapatalk
Sakkhho Posté(e) le 17 décembre 2017 Auteur Signaler Posté(e) le 17 décembre 2017 Tu as importé une seconde fois le VD pour ce 2nd user ?Rappele moi la ligne 17? (Je suis pas devant mon Mac la.)
PdB Posté(e) le 18 décembre 2017 Signaler Posté(e) le 18 décembre 2017 Oui. c'est FatMass = round((jsonTable.body.measuregrps[1].measures[2].value)/100)
Sakkhho Posté(e) le 19 décembre 2017 Auteur Signaler Posté(e) le 19 décembre 2017 Tu peux me partager en MP le résultat de l url pour ce user ?
q.philippe Posté(e) le 21 décembre 2017 Signaler Posté(e) le 21 décembre 2017 (modifié) Bon ben je dois dire , que cela j'adore, je vais regarder le prix. bon boulot Pourrais tu me préciser la référence car vu qu'il y en a plusieurs modele. nokia body+ a 69,90 ? car ton icône est celui du Cardio ? Modifié le 21 décembre 2017 par q.philippe
Sakkhho Posté(e) le 21 décembre 2017 Auteur Signaler Posté(e) le 21 décembre 2017 Oui j ai pris la body+ pas la cardio moi. ( j ai l Apple Watch pour cela )
PdB Posté(e) le 22 décembre 2017 Signaler Posté(e) le 22 décembre 2017 OK! En fait, c'est une cardio que j'ai, d'où le bug... La balance remonte plus d'infos dans l'API. Du coup j'ai mis un "filtre" dans ton VD qui trie les mesures qui ne sont pas du poids: local taille = 1.75 -- votre taille en metre local nokiaURL ="XXXXX" -- copier ici l'url obtenu sur le site de nokia après le "consumer_key=" ------------------------------------------------------------- local Nokia = Net.FHttp("api.health.nokia.com",80) local selfId = fibaro:getSelfId() local response ,status, err = Nokia:GET("/measure?action=getmeas&oauth_consumer_key="..nokiaURL.."") local jsonTable = json.decode(response) function round(num, dec) local mult = 10^(dec or 1) return math.floor(num * mult + 0.5) / mult end local i = 1; while jsonTable.body.measuregrps[i].measures[1].type ~= 1 do i = i + 1 end local Poids = round((jsonTable.body.measuregrps[i].measures[1].value)/1000) fibaro:debug(" Poids actuel " .. Poids .. "Kg") local j = i + 1; while jsonTable.body.measuregrps[j].measures[1].type ~= 1 do j = j + 1 end local OldPoids= round((jsonTable.body.measuregrps[j].measures[1].value)/1000) fibaro:debug(" Poids avant " .. OldPoids .. "Kg") local Variation = round((Poids - OldPoids)) local FatMass = round((jsonTable.body.measuregrps[i].measures[2].value)/100) fibaro:debug(" Masse Grasse " .. FatMass .."Kg") local MasseMuscle = round((jsonTable.body.measuregrps[i].measures[3].value)/100) fibaro:debug(" Masse Musculaire " .. MasseMuscle .."Kg") local MasseEau = round((jsonTable.body.measuregrps[i].measures[4].value)/100) fibaro:debug(" Masse Hydrique " .. MasseEau .."Kg") local MasseOs = round((jsonTable.body.measuregrps[i].measures[5].value)/100) fibaro:debug(" Masse Osseuse " .. MasseOs .."Kg") local FreeFatMass = round((jsonTable.body.measuregrps[i].measures[6].value)/1000) fibaro:debug(" Masse Maigre " .. FreeFatMass .."Kg") local FatRatio = round((jsonTable.body.measuregrps[i].measures[7].value)/1000) fibaro:debug(" Indice Masse Grasse " .. FatRatio .."%") local Lastmeasure = jsonTable.body.measuregrps[i].date local Oldmeasure = jsonTable.body.measuregrps[j].date local delta = round((os.difftime(Lastmeasure,Oldmeasure))/(3600*24)) local delai = math.floor((os.time() - Lastmeasure)/60) local lblEcart = (" Variation " .. Variation .. "Kg" .. " sur " .. delta .. " jours" ) local lblPoids = ("" .. Poids .. " Kg" ) local IMC = round(Poids/(taille*taille)) local lblMasseMuscle =("" .. MasseMuscle .." Kg") local lblFatMass =("" .. FatMass .." Kg") local lblFreeFatMass =("" .. FreeFatMass .." Kg") local lblMasseEau =("" .. MasseEau .." Kg") local lblMasseOs =("" .. MasseOs .." Kg") fibaro:debug("Délai depuis dernière mesure: " .. delai) fibaro:debug(lblEcart) fibaro:debug("IMC: " .. IMC) fibaro:call(selfId, "setProperty", "ui.lblEcart.value", lblEcart) fibaro:call(selfId, "setProperty", "ui.LblPoids.value", lblPoids) fibaro:call(selfId, "setProperty", "ui.LblIMC.value", IMC) fibaro:call(selfId, "setProperty", "ui.lblMasseGras.value", lblFatMass) fibaro:call(selfId, "setProperty", "ui.lblMasseMaigre.value", lblFreeFatMass) fibaro:call(selfId, "setProperty", "ui.lblMasseMuscle.value", lblMasseMuscle) fibaro:call(selfId, "setProperty", "ui.lblMasseOs.value", lblMasseEau) fibaro:call(selfId, "setProperty", "ui.lblMasseHydrique.value", lblMasseOs)
flacon030 Posté(e) le 22 décembre 2017 Signaler Posté(e) le 22 décembre 2017 désolé mais je ne comprends pas les 4 étapes a l’étape que doit t'on mettre dans Consumer key : Consumer secret : Callback URL (called by withings on step 2): idem pour les autres etapes. Merci
q.philippe Posté(e) le 7 janvier 2019 Signaler Posté(e) le 7 janvier 2019 coucou l'ayant acheter, j'ai un bug [ERROR] 11:01:10: line 14: attempt to index field 'body' (a nil value) j'ai créer l'api, j'ai les keys client et id.j'ai l'url callback!! après ....?
Sakkhho Posté(e) le 7 janvier 2019 Auteur Signaler Posté(e) le 7 janvier 2019 Hello Je sais pas trop quoi dire la comme ca. l'api a changer et elle est passée en V2, mais chez moi la V1 tourne toujours (pour combien de temps je sais pas) - je viens de faire une pesée et j'ai bien la remontée sans erreur. donc peut être que tu as les données pour l'api V2 tu peux décrire ce que tu as fait de façon détaillé pour comprendre et remettre à jour en v2
q.philippe Posté(e) le 8 janvier 2019 Signaler Posté(e) le 8 janvier 2019 cc ben j'ai suivi ton tuto, et je bug au niveau de leur site dev api. je me suis créer un compte, et fait mon appli, j'ai donc l'id et le secret. après c'est tout. pas réussi a aller plus loin. me manque url
q.philippe Posté(e) le 10 janvier 2019 Signaler Posté(e) le 10 janvier 2019 How to migrate from OAuth 1.0 to OAuth 2.0 In case your app still uses the OAuth 1.0 protocol, we have created a custom method to migrate to OAuth 2.0. You will be able to get an Access Token and a Refresh Token. You firstly have to create a OAuth 2.0 developer application (see Getting Startedsection), then you only need to make a POST request for each user with a custom Refresh Token and the following parameters. To generate this Refresh Token you just need to concatenate with a colon the user's OAuth 1.0 OAuth Token (also called Access Token Key) and the OAuth 1.0 OAuth Secret (also called Access Token Secret). Example (your tokens should be longer than the ones in this example): oauth_token: 9b649 oauth_secret: e3d8cc generated refresh_token: 9b649:e3d8cc Important 1: Parameters must be set in the body request and not in the url.Important 2: API notification subscriptions created with OAuth1.0 credentials will be linked to OAuth2.0 partner application. This action is definitive but does not change notification behavior. However notification revoke or update will have to be done with OAuth2.0 Access Token.Important 3: This migration does not revoke OAuth1.0 tokens. However OAuth1.0 tokens will not work anymore to revoke or update notification subscriptions.
Sakkhho Posté(e) le 19 janvier 2019 Auteur Signaler Posté(e) le 19 janvier 2019 hello j'ai regardé mais je comprends pas comment migrer. désolé il nous faut des expert comme @Steven ou @Lazer ....
Dvittorio Posté(e) le 14 avril 2019 Signaler Posté(e) le 14 avril 2019 Salut, j'essaye d'installer ce VD. J'ai suivi toutes les instructions mais le site nokia ne renvoie pas consumer_key, mais un id_client et un consumer_secret. Où est-ce que je me trompe?
Sakkhho Posté(e) le 14 avril 2019 Auteur Signaler Posté(e) le 14 avril 2019 Le VD ne fonctionne plus avec la nouvelle méthode d authentification. C est possible à mon avis mais je suis pas assez calé pour le faire. Envoyé de mon iPhone en utilisant Tapatalk
Messages recommandés