NEWS
Withings Werte korrekt umrechnen
-
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.