Forum eedomus https://forum.eedomus.com/ |
|
Intégration de la balance Withings grâce à Xpath https://forum.eedomus.com/viewtopic.php?f=15&t=285 |
« Précédent Page 4 sur 4 |
Auteur: | DomotiFred [ 14 Déc 2017 20:59 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Auteur: | DomotiFred [ 26 Déc 2017 17:11 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Bonjour, J'ai donc bien reçu ma balance Nokia Body Cardio. Effectivement, le script eedomus n'intègre que 3 relevés, ce qui est dommage par rapport à toutes les possibilités et remontées de la balance. J'ai modifié le script PHP en remplaçant la ligne 92 : $measure_type = array(1 => 'weight', 6 => 'fat_percent', 11 => 'heart_rate'); avec cette ligne : $measure_type = array(1 => 'weight', 4 => 'height', 5 => 'fat_free_mass', 6 => 'fat_percent', 8 => 'fat_mass', 9 => 'DBP', 10 => 'SBP', 11 => 'heart_rate', 54 => 'SP02', 91 => 'pulse_wave_velocity'); Il faut que je teste avec plus d'infos, car visiblement la balance peut en remonter d'autres, mais je suis en aveugle sur comment les écrire pour respecter le format attendu. Je suis en train de chercher un peu partout sur Internet. J'ai trouvé ça, mais il faut déchiffrer et tester voir si c'est compatible, au moins pour certaines valeurs, avec la balance... %measure_types = ( 1 => { name => "Weight (kg)", reading => "weight", }, 4 => { name => "Height (meter)", reading => "height", }, 5 => { name => "Lean Mass (kg)", reading => "fatFreeMass", }, 6 => { name => "Fat Mass (%)", reading => "fatRatio", }, 7 => { name => "Lean Mass (%)", reading => "fatFreeRatio", }, 8 => { name => "Fat Mass (kg)", reading => "fatMassWeight", }, 9 => { name => "Diastolic Blood Pressure (mmHg)", reading => "diastolicBloodPressure", }, 10 => { name => "Systolic Blood Pressure (mmHg)", reading => "systolicBloodPressure", }, 11 => { name => "Heart Rate (bpm)", reading => "heartPulse", }, 12 => { name => "Temperature (°C)", reading => "temperature", }, 13 => { name => "Humidity (%)", reading => "humidity", }, 14 => { name => "unknown 14", reading => "unknown14", }, #device? event home - peak sound level? 15 => { name => "Noise (dB)", reading => "noise", }, 18 => { name => "Weight Objective Speed", reading => "weightObjectiveSpeed", }, 19 => { name => "Breastfeeding (s)", reading => "breastfeeding", }, #baby 20 => { name => "Bottle (ml)", reading => "bottle", }, #baby 22 => { name => "BMI", reading => "bmi", }, #user? goals 35 => { name => "CO2 (ppm)", reading => "co2", }, 36 => { name => "Steps", reading => "steps", dailyreading => "dailySteps", }, #aggregate 37 => { name => "Elevation (m)", reading => "elevation", dailyreading => "dailyElevation", }, #aggregate 38 => { name => "Active Calories (kcal)", reading => "calories", dailyreading => "dailyCalories", }, #aggregate 39 => { name => "Intensity", reading => "intensity", }, #intraday only 40 => { name => "Distance (m)", reading => "distance", dailyreading => "dailyDistance", }, #aggregate #measure 41 => { name => "Descent (m)", reading => "descent", dailyreading => "dailyDescent", }, #descent #aggregate #measure ??sleepreading! 42 => { name => "Activity Type", reading => "activityType", }, #intraday only 1:walk 2:run 43 => { name => "Duration (s)", reading => "duration", }, #intraday only 44 => { name => "Sleep State", reading => "sleepstate", }, #intraday #aura mat 47 => { name => "MyFitnessPal Calories (kcal)", reading => "caloriesMFP", }, 48 => { name => "Active Calories (kcal)", reading => "caloriesActive", dailyreading => "dailyCaloriesActive", }, #day summary 49 => { name => "Idle Calories (kcal)", reading => "caloriesPassive", dailyreading => "dailyCaloriesPassive", }, #aggregate 50 => { name => "unknown 50", reading => "unknown50", dailyreading => "dailyUnknown50", }, #day summary pulse 60k-80k #aggregate 51 => { name => "Light Activity (s)", reading => "durationLight", dailyreading => "dailyDurationLight", }, #aggregate 52 => { name => "Moderate Activity (s)", reading => "durationModerate", dailyreading => "dailyDurationModerate", }, #aggregate 53 => { name => "Intense Activity (s)", reading => "durationIntense", dailyreading => "dailyDurationIntense", }, #aggregate 54 => { name => "SpO2 (%)", reading => "spo2", }, 56 => { name => "Ambient light (lux)", reading => "light", }, # aura device 57 => { name => "Respiratory rate", reading => "breathing", }, # aura mat #measure vasistas 58 => { name => "Air Quality (ppm)", reading => "voc", }, # Home Air Quality 59 => { name => "unknown 59", reading => "unknown59", }, # 60 => { name => "unknown 60", reading => "unknown60", }, # aura mat #measure vasistas 20-200 peak 800 61 => { name => "unknown 61", reading => "unknown61", }, # aura mat #measure vasistas 10-60 peak 600 62 => { name => "unknown 62", reading => "unknown62", }, # aura mat #measure vasistas 20-100 63 => { name => "unknown 63", reading => "unknown63", }, # aura mat #measure vasistas 0-100 64 => { name => "unknown 64", reading => "unknown64", }, # aura mat #measure vasistas 800-1300 65 => { name => "unknown 65", reading => "unknown65", }, # aura mat #measure vasistas 3000-4500 peak 5000 66 => { name => "unknown 66", reading => "unknown66", }, # aura mat #measure vasistas 4000-7000 67 => { name => "unknown 67", reading => "unknown67", }, # aura mat #measure vasistas 0-500 peak 1500 68 => { name => "unknown 68", reading => "unknown68", }, # aura mat #measure vasistas 0-1500 69 => { name => "unknown 69", reading => "unknown69", }, # aura mat #measure vasistas 0-6000 peak 10000 70 => { name => "unknown 70", reading => "unknown70", }, #? 71 => { name => "Body Temperature (°C)", reading => "bodyTemperature", }, #thermo 73 => { name => "Skin Temperature (°C)", reading => "skinTemperature", }, #thermo 76 => { name => "Muscle Mass (kg)", reading => "muscleMass", }, # cardio scale 77 => { name => "Water Mass (kg)", reading => "waterMass", }, # cardio scale 78 => { name => "unknown 78", reading => "unknown78", }, # cardio scale 79 => { name => "unknown 79", reading => "unknown79", }, # body scale 80 => { name => "unknown 80", reading => "unknown80", }, # body scale 86 => { name => "unknown 86", reading => "unknown86", }, # body scale 87 => { name => "Active Calories (kcal)", reading => "caloriesActive", dailyreading => "dailyCaloriesActive", }, # measures list sleepreading! 88 => { name => "Bone Mass (kg)", reading => "boneMassWeight", }, 89 => { name => "unknown 89", reading => "unknown89", }, 90 => { name => "unknown 90", reading => "unknown90", }, #pulse 91 => { name => "Pulse Wave Velocity (m/s)", reading => "pulseWave", }, # new weight 93 => { name => "Muscle Mass (%)", reading => "muscleRatio", }, # cardio scale 94 => { name => "Bone Mass (%)", reading => "boneRatio", }, # cardio scale 95 => { name => "Hydration (%)", reading => "hydration", }, # body water #-10 => { name => "Speed", reading => "speed", }, #-11 => { name => "Pace", reading => "pace", }, #-12 => { name => "Altitude", reading => "altitude", } Fred. |
Auteur: | DomotiFred [ 03 Jan 2018 15:54 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Bonjour, Bon, je n'arrive pas à trouver les bonnes valeurs dans le script pour faire remonter les valeurs suivantes : Masse osseuse Tension IMC Masse musculaire Masse hydrique Les seules valeurs qui remontent sont : Poids Masse grasse saine Rythme cardiaque Vitesse d'onde de pouls Ca fait quand même peu vues les possibilités de la balance. Quelqu'un connait t'il les lignes à rajouter dans le script pour remonter ces 5 valeurs ? Merci. Fred. |
Auteur: | galaksy2001 [ 06 Jan 2018 19:02 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Quand tu fais un appel à l'API en utilisant la syntaxe suivante :
tu n'as que les paramètres 1, 5, 6, 8 et 11 qui sont renseignés ( weight, fatFreeMass, fatRatio, fatMassWeight et heartPulse ). En épluchant l'API dispo sur le site https://developer.health.nokia.com/api/doc, au chapitre "Measure - Get Body Measures" il y a pourtant beucoup plus de types dispos. J'en déduis que la limitation vient du modèle de la balance et/ou de l'user ID. |
Auteur: | DomotiFred [ 06 Jan 2018 19:08 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Bonjour, Bizarre, Quand je fais : https://api.health.nokia.com/measure?action=getmeas&userid=xxxx avec comme userid, l'id indiqué dans VAR 1 du périphérique créé par 'eedomus, ça me retourne : {"status":2554} et rien d'autre |
Auteur: | galaksy2001 [ 06 Jan 2018 19:19 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
2554 : Wrong action or wrong webservice. Tu as refait une inscription sur le site https://static.health.nokia.com/content/dashboard/fr/ ? |
Auteur: | DomotiFred [ 06 Jan 2018 19:30 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Je recommence et ça fonctionne maintenant ?! La logique floue... Bref, va falloir que j'étudie la page que j'ai en retour, car elle est pleine de valeurs.. |
Auteur: | DomotiFred [ 06 Jan 2018 19:46 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Bon, après étude de la page, j'ai pas mal de données qui remontent. Ce sont les 12 valeurs suivantes : 1 5 6 8 11 76 77 88 91 93 94 95 Je ne sais pas pour toi si ces valeurs remontent de la même façon. Ne sachant pas trop comment aller chercher et comment écrire les valeurs à chercher, j'avais modifié la ligne 92 du script withings_oauth.php hébergé sur l'eedomus comme ceci : $measure_type = array(1 => 'weight', 4 => 'height', 5 => 'fat_free_mass', 6 => 'fat_percent', 8 => 'fat_mass', 7 => 'lean_mass', 7 => 'fat_free_ratio', 7 => 'fat_free_percent', 9 => 'diastolic_blood_pressure', 9 => 'dbp', 9 => 'DBP', 10 => 'systolic_blood_pressure', 10 => 'sbp', 10 => 'SBP', 11 => 'heart_rate', 22 => 'bmi', 54 => 'spo2', 76 => 'muscle_mass', 77 => 'water_mass', 88 => 'bone_mass', 88 => 'bone_mass_weight', 91 => 'pulse_wave_velocity', 93 => 'muscle_ratio', 93 => 'muscle_percent', 93 => 'muscle_mass', 95 => 'hydration'); J'ai donc 12 valeurs qui remontent sur 17 que je tente d'aller chercher, c'est déjà pas mal. Par contre, je n'en ai que 6 qui remontent dans l'eedomus après pourtant avoir créé les périphériques avec l'Xpath qui va bien. Par exemple, pour obtenir le résultat du 95 (hydratation), mon Xpath est : /root/measure[1]/hydration Mais je n'ai absolument rien en retour sur le xml généré par le script eedomus. Ce xml contient juste les infos suivantes : <root><measure><date>2018-01-05 20:38:32</date><pulse_wave_velocity>6.821</pulse_wave_velocity><heart_rate>82</heart_rate><weight>72.511</weight><fat_mass>12.39</fat_mass><fat_free_mass>60.121</fat_free_mass><fat_percent>17.087</fat_percent></measure></root> A force de "gratter", on va bien trouver... |
Auteur: | galaksy2001 [ 06 Jan 2018 20:05 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Ma balance est une Withings WS 50 : les seules données qui remontent via l'API sont celles que j'ai communiquées ( type 1, 5, 6, 8 et 11 ). J'ai pourtant le taux de CO2 et la température qui apparaissent sur ma balance mais pas communiqués par L'API via cette syntaxe. Quelles sont tes 6 valeurs qui remontent ? |
Auteur: | DomotiFred [ 06 Jan 2018 20:13 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
Ma balance est un Nokia Cardio C8 Les valeurs qui remontent dans l'eedomus après avoir mofifié la ligne 92 du script sont les suivantes : Le poids en Kg => 1 La Fat Free Mass en Kg => 5 La masse grasse saine en % => 6 La Fat Mass Weight en Kg => 8 Le rythme cardiaque en bps => 11 La vitesse d'onde de pouls => 91 |
Auteur: | galaksy2001 [ 06 Jan 2018 20:26 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
C'est quand même déjà pas mal ! Pour les autres types (76, 77, 88, 93, 94, 95), je comprends pas pourquoi ça ne fonctionne pas car à priori c'est toi qui fixe, à la ligne 92 du script, le nom des types par rapport à leur numéro , il ne peut donc pas y avoir d'erreurs de syntaxes par rapport à ton chemin Xpath Edith : pour le poids, la valeur "1", c'est de la coquetterie ou c'est un bug ? |
Auteur: | DomotiFred [ 07 Jan 2018 11:06 ] |
Sujet du message: | Re: Intégration de la balance Withings grâce à Xpath |
C'est bien là le problème. C'est à se demander s'il n'y a pas une restriction dans le script eedomus Concernant la valeur "1" pour le poids, c'est le codage imposé par Nokia Fred. |
Page 4 sur 4 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |