NEWS
Withings Werte korrekt umrechnen
-
Hallo zusammen,
kann mir jemand verraten wie ich die Werte vom Withings Adapter korrekt umrechne um verwertbare Minuten zu erhalten.Mir geht es um folgende Werte welche ich hier mal mit den aktuell bei mir angezeigten Wert benenne:
durationsleep - 540
deepsleepduration - 4740
lightsleepduration - 5460
sleep_latency - 540
snoring - 4200
total_timeinbed - 10740Dann noch eine Frage zu den "steps"?
Warum steht hier heute schon ein derart hoher Wert drin. Dieser Wert passt auch nicht zu gestern. Denn laut Healthate App bin ich gestern 1056 Schritte gegangen.
-
im Withings Adapter sind alle Zeitwerte in Sekunden angegeben, also musst du deine Werte durch 60 teilen.
Mit dieser Formel passen bei mir die Werte aus dem Adapter, mit den Werten auf meinem Android Handy überein.
Ich glaube deinen ganzen Probleme haben weniger mit dem Adapter zu tun, sonst hätten andere die gleichen Probleme.
Außerdem sind bei mir die aktuellen Schlaf und Aktivitätsdaten immer im letzten Ordner des Adapters.
Welche Version hast du vom Adapter?
Welche Einstellungen hast du im Adapter gemacht?Eventuell mal alle Ordner löschen und neu anlegen lassen, dass könnte auch helfen.
-
@oli Guten Morgen, das sind die Einstellungen meines Adapters:
Meine Adapter Version ist: 0.0.7
Hier noch zwei Screenshots meiner Datenpunkte:
Siehst Du irgendwas auffälliges?
Nachdem ich mir jetzt meine einzelnen Datenpunkte nochmal genau angeschaut habe, ergeben sich noch Fragen:
Wie hast Du das in Deiner Visualisierung mit der Aufzeichnung der Schlafapnoe umgesetzt? Da stehen bei mir bis zum 21.04. normale Werte drin und ab dann immer -1
Ich habe meinen Verzeichnisbaum von Withings eben mal komplett gelöscht und wieder neu anlegen lassen.
-
@oli Ich muss noch einen weiteren Punkt erwähnen.
Am 27.04.2022 habe ich ein Workout aufgezeichnet.
Da werden mir n der Health App folgende Werte gezeigt:
Schritte: 3825
Aktive Minuten: 32
Distanz: 3,4 km
Verbrannte Kalorien: 159In den Verlaufsdaten steht folgendes:
Schritte: 4441
Activ: keine Daten vorhanden
Distanz: keine Daten vorhanden
Kalorien: 196,09Wie kommt dieser Unterschied zustande?
Warum steht bei Activity und Distanz garnichts drin?Zum Vergleich mal die Daten vom 28.04.2022 wo ich kein Workout aufgezeichnet habe.
In der Health App:
Schritte: 1066
Aktive Minuten: -
Distanz: 955,8 m
Verbrannte Kalorien: 48In den Verlaufsdaten steht folgendes:
Schritte: Erst 4441 und dann 3311
Activ: keine Daten vorhanden
Distanz: keine Daten vorhanden
Kalorien: Einmal 155,165 und dann 196,09Zur Verdeutlichung anbei zwei Screenshots:
Ich frage mich wie ich so ein aussagekräftiges (korrektes) Diagramm erstellen kann.
-
mit Workouts und Liniengrafiken habe ich mich noch nicht auseinandergesetzt, da kann ich dir im Moment leider nicht weiterhelfen.
Was mich etwas stutzig macht, ist, dass bei mir die aktuellsten Werte bei Schlafen und zB. Schritte im letzten Ordner des Adapters zu finden sind und nicht wie bei dir im ersten. Hast du das schon mal kontrolliert?
-
@oli Du scheinst recht zu haben. In dem Ordner activites31 sind die Werte von gestern, dem 01.05.drin. Ich war anscheinend so übermütig, das ich das Datum garnicht beachtet habe.
Bei Sleep Summary sind die Werte im Ordner 58
Gut, dann werde ich mal die Protokollierung auf die anderen, richtigen Ordner abändern. -
@oli Was ist denn bei Dir der letzte Ordner? Ich habe vor ca. 2 Stunden das Logging im Ordner series 58 aktiviert. Jetzt schaue ich gerade in meine Datenpunkte und sehe es gibt auf eimal einen Ordner series 59, welcher vor zwei Stunden noch nicht da war.
Kannst Du mir das erklären? -
der Adapter scheint bei jeder Änderung einen neuen Ordner anzulegen, deshalb wird das, was du machen möchtest, nicht ohne Skript oder Blocky funktionieren.
Du musst bei jeder Änderung per Skript den Wert im letzten Ordner suchen, diesen nach deinen Wünschen umrechnen und in eine eigenen Datenpunkt schreiben.
Diesen Datenpunkt musst du dann loggen. -
@oli Guten Morgen Oliver, nochmal die Frage: Was ist denn bei Dir mittlerweile der letzte Ordner?
Ich habe bis jetzt nur ein Blockly erstellt, welche mir die "totalsleeptime" in Minuten umrechnet, damit ich es in Grafana verwenden kann.
Allerdings weiß ich überhaupt nicht wie ich das Blocky erstellen muss, sodass er immer auf die einzelnen Datenpunkte in dem letzten Ordner zugreift. Das bekomme ich nicht hin.
Könntest Du mir da bitte helfen, oder mal Dein Blockly posten, damit ich es nachbauen kann. -
@oli sagte in Withings Werte korrekt umrechnen:
deshalb wird das, was du machen möchtest, nicht ohne Skript oder Blocky funktionieren
Du machst es doch anscheinend genauso, oder wie bekommst Du immer Deine aktuellen Werte in die Vis?
-
bei mir hat der letzte Ordner die Nummer 33.
Das mit deinem Blocky wird so nicht funktionieren, weil in dem Datenpunkt keine Zahl hinterlegt ist, sondern ein String.
Mit Blocky kenne ich mich leider nicht aus und meine Javaskript-Kennnisse lassen auch sehr zu wünschen übrigAber man wächst mit seinen Herausforderungen
Habe das bei mir so gelöst:
// Skript Einstellungen ************************************************************************************************************************************************* let idWithings = 'XXXXXXXX'; // Withing Benutzerkennung let vorname = 'Oliver'; // Vorname let idDatenpunktPrefix = '0_userdata.0'; // '0_userdata.0' or 'javascript.x' let idDatenPunktStrukturPrefixS = `Gesundheit.${vorname}.Schlaf`; // Struktur unter Prefix let devicesS = $(`[id=withings.0.${idWithings}.sleepSummary.series*.created]`); // Alle Datenpunkte von der Kategorie Schlafen und der Endung created in einem Array zusammenfassen let ordnerS = devicesS.length; // Zählt die Anzahl der Elemente im Array und gibt somit die Zahl des letzten Ordners aus // ********************************************************************************************************************************************************************** // Schlafdauer on({id: `withings.0.${idWithings}.sleepSummary.series${ordnerS}.data.total_sleep_time`}, function () { // Wird ausgeführt, sobald sich im letzten Ordner was ändert let zeit = getState(`withings.0.${idWithings}.sleepSummary.series${ordnerS}.data.total_sleep_time`).val; // Wert aus Datenpunkt auslesen let zeit_array = zeit.split(':'); // Wert zerlegen, weil keine Zahl let stunden = zeit_array[0]; // Erster Abschnitt = Stunde let minuten = zeit_array[1]; // Zweiter Abschnitt = Minuten let schlafdauer = parseFloat(stunden + '.' + minuten); // Stunden und Minuten mit einem Punkt verbinden und als Zahl formatieren mySetState(`${idDatenpunktPrefix}.${idDatenPunktStrukturPrefixS}.SchlafdauerGesamt`, schlafdauer, 'number', 'Schlafdauer Gesamt'); // Schreibt den Wert in einen Datenpunkt. Dieser muss für das Diagramm geloggt werden }); /************************************************************************************************************************************************************************ * Funktionen ************************************************************************************************************************************************************************/ function mySetState(id, val, type, name, write = true) { // Erstellt Datenpunkt automatisch if (existsState(id)) { setState(id, val, true); } else { createState(id, { 'name': name, 'type': type, 'read': true, 'write': write }, function () { setState(id, val, write); }); } }
-
@damrak2022 , ich gebe dir nochmal eine Hilfestellung.
Datenpunkte dafür:
...von Datenpunkt:
Aus dem created wird das Datum und auch die Zeit entnommen.
Der Trigger von:
value ist das Gewicht und gleichzeitig Trigger.
So langsam sollte der Groschen mal fallen.
Bei mir sind die aktuellen Daten immer in measuregrps01
Die älteren werden nach hinten geschoben.
Ich habe nur 2 Gewichte für mich und meiner Frau....anderen Firlefanz nutze ich nicht.Vis:
Im ständigen Wechsel mit meinem Gewicht nach 15 Sek.
-
@esp8266 Sorry, der Groschen fällt nicht, denn es scheint so zu sein wie @oli schreibt, das der Adapter bei jeder Änderung einen neuen Ordner anlegt.
Wenn ich als die Influx bei den entsprechenden Datenpunkten aktiviere, stimmt es beim nächsten Mal schon nicht mehr, da die Daten dann in einem neuen Ordner bereitstehen.Bezüglich dieser Aussage "anderen Firlefanz nutze ich nicht" kann ich Dir nur sagen das für mich das Gewicht ziemlich unwichtig ist, aber die genaue Erfassung meiner Schlafdaten schon, denn ich habe seit läanger Zeit massive Schlafstörungen. Somit sind die Prioritäten unterschiedlich, aber bestimmt kein Firlefanz.
-
@damrak2022 , oh wusste garnicht wie Empfindlich man sein kann. Sorry, Sorry.
Spaß lass nach.Mach dein Ding. Bin raus hier.
btw. ...wenn ich massive Schlafstörungen habe, die ich auch habe, sehe ich zu das ich ein Schlaflabor aufsuche und mich nicht auf so ein ungenaues System stütze. Das ist alles nur relativ.
bye
-
@esp8266 Du verstehst etwas falsch, denn ich bin hier für jede Hilfe dankbar. Meinen ersten Termin im Schlaflabor hatte ich 2019 und der nächste Termin ist am 29.05.22
Somit möchte ich Hue keinerlei Streitereinen haben. -
sorry, aber jetzt muss ich hier auch mal meinen Senf dazu geben.
ioBroker ist eigentlich als SmartHome gedacht, alle anderen Adapter sind nice to have (Beispiel für den Withings Adapter wäre "stehe ich auf, soll sich die Kaffeemaschine einschalten").
Wenn du eine Visualisierung realisieren möchtest, wirst du bei fast keinen verwendeten Adapter ohne Skripte oder Blocky auskommen. Dazu musst du dir nur ein paar hier vorgestellte VIS anschauen.
Solltest du alles "out of the box" wollen, dann ist ioBroker wahrscheinlich nicht die richtige Software für dich.
Hättest du dich von Beginn an mit dem Adapter und dessen Ordnerstruktur etwas intensiver auseinandergesetzt, dann wäre dir aufgefallen, dass die Schlafdaten immer im letzten Ordner eingepflegt werden und du hättest dir viele Fragen gespart.
Natürlich wäre es cool, wenn es für die aktuellsten Daten einen festen Ordner gäbe, aber dann bitte die Anfrage an den Entwickler für alle Messungen äußern (Schlafdaten, Aktivitätsdaten, usw).
Du hast genug Beispiele bekommen, wie du die verschieden Daten umrechnen und grafisch darstellen kannst, du musst sie nur umsetzen. Leider entsteht bei mir der Eindruck, dass du das nicht einmal versuchst.
Also, etwas mehr Eigeninitiative und dir wird bei Fragen hier sicher weiter geholfen.
@ESP8266
Wenn du nur ein Gerät hast, dann bleibt die Struktur im Ordner "measures" übersichtlich, bei mehreren Geräten wird es etwas chaotisch.