NEWS
Test Withings v0.0.x
-
@tombox sagte in Test Withings v0.0.x:
@damrak2022 Kannst du bitte die datenpunkte schreiben und welch umrechnung sie brauchen, das ist leichter als aus einem bild zu extrahieren
total_sleep_time am besten in einem timestamp um sich das selber formatieren zu können
bei deepsleepduration, lightsleepduration und remsleepduration (andere Werte noch nicht getestet) müsste der Wert mit 1000 multipliziert werden um daraus in Blockly die Formatierung korrekt zu erstellen. Bei sind die Werte mit 1000 multipliziert dann genau 3600000 ms zu hoch.
Ich muss z. B. deepsleepduration wie folgt formatieren: deepsleepduration*1000-3600000 um die in der App angezeigte Zeit korrekt darstellen zu können.
-
@tombox Soory, ich hatte eine Woche kein Internet zur Verfügung.
Mich würden noch folgende Punkte interessieren:
deepsleepduration
durationtosleep
lightsleepduration
remsleepduration
snoring
totaltimeinbedWelche Umrechnung sie brauchen weiß ich ehrlich gesagt nicht genau.
Ich kann Dir nur mal die Werte aus den Datenpunkten von heute Nacht geben und Dir sagen was in meiner App steht.
deepsleepduration: 1020 / in der App sind das 17 Minuten
durationsleep: 1380 / ?
lightsleepduration: 3420 / in der App sind das 57 Minuten
remsleepduration: 540 / in der App sind das 9 Minuten
snoring: 3000 / in der App sind das 50 Minuten
totaltimeinbed: 8520 / in der App sind das 142 MinutenIch poste Dir hier noch ein paar Fotos aus der App. Dann is das vielleicht für Dich verständlicher. Auf jeden Fall schon mal viele Dank für Deine Hilfe.
-
@tombox Hallo, die Umrechnung von Dir welche ich für absolut genial finde, bringt mir leider ein neues Problem:
Im marterialdesign Line Chart Widget wird mir nichts mehr von meiner Schlafdauer dargestellt, da das Widget anscheinend nicht mit der Formatierung Stunden/Minuten umgehen kann. Ich muss jetzt mal schauen, mit welchem Widget ich das darstellen kann, bin aber auch für jeden Tipp dankbar,
-
@damrak2022 sagte in Test Withings v0.0.x:
@tombox Soory, ich hatte eine Woche kein Internet zur Verfügung.
Mich würden noch folgende Punkte interessieren:
deepsleepduration
durationtosleep
lightsleepduration
remsleepduration
snoring
totaltimeinbedHi, hier kann ich dir vielleicht schon weiter helfen. Da ich selber das ganze etwas anders gelöst habe, habe ich für dich alles auf Blockly umgebaut und dokumentiert.
deepsleepduration
Leg dir, z. B. unter 0_userdata einen neuen Ordner, z. B. withings, an und darunter dann deinen datenpunkt -> deepsleepduration (Typ mixed und in den Objektdaten kannst du dann die Unit "unit": "h" hinzufügen).
Dann legst du ein Blockly an, welches die Datenquelle einliest, formatiert und fertig in den Datenpunkt schreibt. So muss du nichts in der VIS formatieren. Die Zeit aus der Datenquelle mit 1.000 ms multiplizieren, damit man dies über Datum/Zeit schick formatieren kann. Natürlich führen hier viele Wege nach Rom.
In meinem Fall wird in der Datenquelle aber immer 1 h zu viel angezeigt, daher ziehe ich noch 1 h (angegeben in ms = 3600000) von der Zeit ab.
Dann ist der Datenpunkt für deine VIS im besten Fall optimal vorbereitet:
Da ich persönlich Jarvis als Visualisierung benutze, hier der JSON String zur Formatierung der Datenpunkt Eigenschaft:
{"value":"val => '0'+new Date(val*1000-3600000).getHours()+':'+new Date(val*1000-3600000).getMinutes()"}
totaltimeinbed -> total_sleep_time
Werte ich nicht aus (da ich im Bett TV schaue und der Wert dadurch für mich nicht die reine Schlafzeit darstellt), aber vielleicht ist ja die Schlafzeit total_sleep_time etwas für dich. Aktuell wird der Wert ja noch als Typ mixed ausgegeben, was den Nachteil hat, dass der ioBroker dies als Uhrzeit interpretiert und mit Tageszeit AM anzeigt. Das wäre nicht allzu schlimm, wenn die Zeit nicht auf hier mit 1h zu viel angezeigt werden würdeHier musste ich also ein wenig kreativer werden. Du legst also einen neuen Datenpunkt unter 0_userdata an mit Typ mixed, z. B. total_sleep_time. Da ich in der Anzeige gerne eine führende 0 hätte, habe ich den Datenpunkt wie folgt formatiert: Die : durch . ersetzen, das AM hin abziehen, das ganze in eine Fließkommazahl umwandeln, dann auf 2 Nachkommastellen runden und 1 h abziehen. Anschließend daraus wieder einen String erstellen, wo . durch : ersetzt wird. Diesem String kann an dann eine 0 voran stellen. Soweit zumindest meine Lösung in Jarvis:
{"value":"val => '0'+parseFloat(val.replace(':','.').substr(0,4)-1).toFixed(2).toString().replace('.',':')"}
Bei der Blockly Variante habe ich das für dich so gelöst:
Javascript Funktion:
let str1 = eingabe; let str2 = suchen; let str3 = ersetzen; str1 = str1.replace(suchen,ersetzen); return str1;
Und schon ist der Datenpunkt schön formatiert:
-
@stony2k vielen Dank, ich werde später mal versuchen ob ich das hinbekomme.
-
@stony2k Guten Morgen,
ich bekomme das mit dem Blockly nicht so wirklich hin. Bei mir sieht der Anfang so aus:
Wie hast Du das mit dem Datum/Zeit hinbekommen?
-
@damrak2022 Du hast den falschen Baustein genommen, du brauchst den unteren:
-
@stony2k Sorry, musste alles neu aufsetzen. Blockly ist garnicht so einfach. Ich bin jetzt bis hier gekommen, finde aber nicht den Baustein der anschließend kommt. Auch der Versuch einer eigenen Variable war nicht wirklich erfolgreich.
Den Teil von Dir bekomme ich nicht hin:
-
@damrak2022 , nach "Datum-Objekt" öffnen und nach unten scrollen.
-
@esp8266 Guten Morgen, nein ich meine wo ich das x 1000 - 3600000 herbekomme, insbesondere das einzelne "x" Zeichen
-
@damrak2022 , aus dem Mathematik Baukasten. Das ist kein X Zeichen sondern ein Multiplikationszeichen.
Darunter findet man es.
-
@esp8266 Irgendwas mache ich falsch, bei mir sieht das sehr merkwürdig aus:
Kannst Du mir Dein Blockly mal posten, damit ich es importieren kann? Dann kann ich es mir in Ruhe zu Gemüte führen
-
@damrak2022 , das kann auch nicht gehen weil die Bausteine überhaupt nicht verknüpft sind.
-
@esp8266 Ich weiß, aber dann habe ich irgendwo schon wieder was falsches genommen
-
Ich liege schon im Bett....
-
@esp8266 Dann schlaf gut und eventuell morgen
-
@damrak2022 , ich habe ein ganz anderes Blockly als wie der stony2k. Weil ich die Datenpunkte nicht nutze. Wenn du mir schreibst was du haben willst, dann baue ich dir das morgen zusammen. Nur hat das kein Lerneffekt.
-
So wie ich das deute muss statt der null der Wert der deepsleepduration dort rein. Dann wo die 1000 steht den anderen Baustein verknüpfen und statt 1 die 1000 einfügen.
-
@esp8266 Danke für das Angebot, aber ich möchte das selbst versuchen. Mich irritiert bei Blockly nur das nicht immer ersichtlich ist wo man etwas anfügen kann.
Manchmal endet so ein Block und man kann dort trotzdem noch was einfügen. -
@esp8266 Ich habe noch ein weiteres kleines Problem was ich nicht nachvollziehen kann. Gestern bin ich laut der Health Mate App von Withings 3700 Schritte gelaufen:
In meinem Datenpunkt von Withings stand aber bis gestern 30.03.2022 um 23:59 Uhr der Wert 1885 Steps drin. Dieser wird mir auch im Widget angezeigt:
Warum werden die 3700 Schritte mir nicht im Datenpunkt angezeigt?
Jetzt ist unter den Datenpunkten Activities nur noch die Zeitspanne vom 01.4. - 30.04. zu sehen, was ich extrem merkwürdig finde.
Obwohl die History aktiviert ist, stehen da gar keine Werte drin.
Hat mein restore den ich mit Hilfe von @liv-in-sky wiederhergestellt habe, doch massive Problem verursacht? Denn nach meinem Restore war zuerst die Vis nicht aufrufbar.
Ich möchte nun nicht wirklich alles komplett neu machen.