NEWS
Test Withings v0.0.x
-
@tombox sagte in Test Withings v0.0.x:
@robson Gut dass das funktioniert hat ist nur die frage ob das oberste element immer das aktuellste ist und ist die frage ob der andere endpunkt auch relevant ist
"Provides the sleep measures for the night of the user, with the details of each phase of their sleep cycle."Das aktuellste Element (die letzte Nacht) ist immer der letzte Eintrag. Bei mir aktuell #29. Ich gehe davon aus, dass die Daten nach einem Monat überschrieben werden. Da ich bereits 29 Elemente habe, kann ich in ein paar Tagen berichten.

-
@robson Ich habe mal den sleep get endpoint hinzugefügt aber keine ahnung wie daten aussehen die da rausfallen
@tombox sagte in Test Withings v0.0.x:
ch habe mal den sleep get endpoint hinzugefügt aber keine ahnung wie daten aussehen die da rausfallen
Ich schaue mir das mal an. Einen Boolean State für den Status des Sleep Sensors hast du nicht noch zufällig irgendwo gefunden, den ich nutzen könnte?
Der Sleep Get Endpoint scheint etwas anderes zu sein. -
@tombox sagte in Test Withings v0.0.x:
ch habe mal den sleep get endpoint hinzugefügt aber keine ahnung wie daten aussehen die da rausfallen
Ich schaue mir das mal an. Einen Boolean State für den Status des Sleep Sensors hast du nicht noch zufällig irgendwo gefunden, den ich nutzen könnte?
Der Sleep Get Endpoint scheint etwas anderes zu sein. -
@tombox Leider bleibt der Adapter rot. Die Tokens usw. stimmen. An was könnte das liegen?
host.iobroker 2022-01-06 22:29:47.137 error instance system.adapter.withings.0 terminated with code 6 (UNCAUGHT_EXCEPTION) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at Withings.onReady (/opt/iobroker/node_modules/iobroker.withings/main.js:62:9) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at Withings.login (/opt/iobroker/node_modules/iobroker.withings/main.js:134:22) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at processTicksAndRejections (internal/process/task_queues.js:95:5) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: TypeError: Cannot read property 'split' of undefined host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected withings.0 2022-01-06 22:29:46.521 warn (29954) Terminated (UNCAUGHT_EXCEPTION): Without reason withings.0 2022-01-06 22:29:46.521 info (29954) terminating withings.0 2022-01-06 22:29:46.509 error (29954) Cannot read property 'split' of undefined withings.0 2022-01-06 22:29:46.509 error (29954) TypeError: Cannot read property 'split' of undefined at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 at processTicksAndRejections (internal/process/task_queues.js:95:5) withings.0 2022-01-06 22:29:46.507 error (29954) unhandled promise rejection: Cannot read property 'split' of undefined withings.0 2022-01-06 22:29:46.507 error (29954) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). meross.0 2022-01-06 22:29:46.026 warn (11554) Can not get Abilities for Device 1909026636379339089948e1e95136a7: Error: Timeout / undefined withings.0 2022-01-06 22:29:45.204 info (29954) starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.withings, node: v14.17.0, js-controller: 3.3.22 host.iobroker 2022-01-06 22:29:44.491 info instance system.adapter.withings.0 started with pid 29954 -
@tombox Leider bleibt der Adapter rot. Die Tokens usw. stimmen. An was könnte das liegen?
host.iobroker 2022-01-06 22:29:47.137 error instance system.adapter.withings.0 terminated with code 6 (UNCAUGHT_EXCEPTION) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at Withings.onReady (/opt/iobroker/node_modules/iobroker.withings/main.js:62:9) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at Withings.login (/opt/iobroker/node_modules/iobroker.withings/main.js:134:22) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at processTicksAndRejections (internal/process/task_queues.js:95:5) host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: TypeError: Cannot read property 'split' of undefined host.iobroker 2022-01-06 22:29:47.137 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected withings.0 2022-01-06 22:29:46.521 warn (29954) Terminated (UNCAUGHT_EXCEPTION): Without reason withings.0 2022-01-06 22:29:46.521 info (29954) terminating withings.0 2022-01-06 22:29:46.509 error (29954) Cannot read property 'split' of undefined withings.0 2022-01-06 22:29:46.509 error (29954) TypeError: Cannot read property 'split' of undefined at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 at processTicksAndRejections (internal/process/task_queues.js:95:5) withings.0 2022-01-06 22:29:46.507 error (29954) unhandled promise rejection: Cannot read property 'split' of undefined withings.0 2022-01-06 22:29:46.507 error (29954) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). meross.0 2022-01-06 22:29:46.026 warn (11554) Can not get Abilities for Device 1909026636379339089948e1e95136a7: Error: Timeout / undefined withings.0 2022-01-06 22:29:45.204 info (29954) starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.withings, node: v14.17.0, js-controller: 3.3.22 host.iobroker 2022-01-06 22:29:44.491 info instance system.adapter.withings.0 started with pid 29954 -
@tombox hatte meine Frau als "Gast" drin. Habe sie gelöscht (den Account
), die Adapterinstanz gelöscht und eine neue angelegt.
Immer noch das gleiche.
Muss jetzt mal ins Bett. Wenn du keinen Tip hast könnte ich dir morgen mal meine Accountdaten zukommen lassen. -
@tombox hatte meine Frau als "Gast" drin. Habe sie gelöscht (den Account
), die Adapterinstanz gelöscht und eine neue angelegt.
Immer noch das gleiche.
Muss jetzt mal ins Bett. Wenn du keinen Tip hast könnte ich dir morgen mal meine Accountdaten zukommen lassen. -
@tombox sagte in Test Withings v0.0.x:
@robson Wie gesagt ich habe kein Gerät ich benötige noch ein Account mit Geräten
Hi,
ich habe jetzt die neueste Version installiert.
Es gibt einen neuen Objekte-Ordner "Sleep", in dem bei mir 130 unterschiedliche Unterordner (series01, series02, etc) hängen. Die Daten darin kann ich ehrlich gesagt wenig deuten. Vor allem nicht die in den Ordnern "hr" und "rr".

Das Setting zum Abrufen der Daten für x Tage ist per Default auf 30 Tage eingestellt.

Zudem ist mir aufgefallen, dass die Werte Zeitstempel aktuell nur bedingt brauchbar sind. Könnte es sein, dass die aktuell als Datums-Objekte abgelegt werden? So steht bspw. im Objekt "startdate" 1641505920. Das ergibt bei mir umgerechnet 1970.01.20. Nur eine Vermutung.
-
@tombox sagte in Test Withings v0.0.x:
@robson Wie gesagt ich habe kein Gerät ich benötige noch ein Account mit Geräten
Hi,
ich habe jetzt die neueste Version installiert.
Es gibt einen neuen Objekte-Ordner "Sleep", in dem bei mir 130 unterschiedliche Unterordner (series01, series02, etc) hängen. Die Daten darin kann ich ehrlich gesagt wenig deuten. Vor allem nicht die in den Ordnern "hr" und "rr".

Das Setting zum Abrufen der Daten für x Tage ist per Default auf 30 Tage eingestellt.

Zudem ist mir aufgefallen, dass die Werte Zeitstempel aktuell nur bedingt brauchbar sind. Könnte es sein, dass die aktuell als Datums-Objekte abgelegt werden? So steht bspw. im Objekt "startdate" 1641505920. Das ergibt bei mir umgerechnet 1970.01.20. Nur eine Vermutung.
-
@tombox Bei mir crashed die Instanz beim Start. Vielleicht weil ich mehrere Benutzer in meinem Withings-Account habe? Wie man im HTML des logs sieht kommt nach dem Login eine Abfrage von Withings welchen Profil man laden möchte (welcher womöglich nicht kommt wenn man nur eine Person in seinem Account hat). Ziel des Adapters sollte natürlich sein die Daten von allen Profilen zu laden.
(Anyonymisiertes) Log:
host.iobroker-pi4 2022-01-06 17:24:48.121 warn Do not restart adapter system.adapter.withings.0 because restart loop detected host.iobroker-pi4 2022-01-06 17:24:48.121 error instance system.adapter.withings.0 terminated with code 6 (UNCAUGHT_EXCEPTION) host.iobroker-pi4 2022-01-06 17:24:48.121 error Caught by controller[2]: at Withings.onReady (/opt/iobroker/node_modules/iobroker.withings/main.js:62:9) host.iobroker-pi4 2022-01-06 17:24:48.120 error Caught by controller[2]: at Withings.login (/opt/iobroker/node_modules/iobroker.withings/main.js:134:22) host.iobroker-pi4 2022-01-06 17:24:48.120 error Caught by controller[2]: at processTicksAndRejections (internal/process/task_queues.js:97:5) host.iobroker-pi4 2022-01-06 17:24:48.120 error Caught by controller[2]: at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 host.iobroker-pi4 2022-01-06 17:24:48.120 error Caught by controller[2]: TypeError: Cannot read property 'split' of undefined host.iobroker-pi4 2022-01-06 17:24:48.119 error Caught by controller[1]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: host.iobroker-pi4 2022-01-06 17:24:48.119 error Caught by controller[0]: at Withings.onReady (/opt/iobroker/node_modules/iobroker.withings/main.js:62:9) host.iobroker-pi4 2022-01-06 17:24:48.119 error Caught by controller[0]: at Withings.login (/opt/iobroker/node_modules/iobroker.withings/main.js:134:22) host.iobroker-pi4 2022-01-06 17:24:48.119 error Caught by controller[0]: at processTicksAndRejections (internal/process/task_queues.js:97:5) host.iobroker-pi4 2022-01-06 17:24:48.118 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 host.iobroker-pi4 2022-01-06 17:24:48.118 error Caught by controller[0]: TypeError: Cannot read property 'split' of undefined host.iobroker-pi4 2022-01-06 17:24:48.113 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: withings.0 2022-01-06 17:24:47.552 silly States user redis pmessage withings.0.*/withings.0.info.connection:{"val":false,"ack":true,"ts":1641486287548,"q":0,"from":"system.adapter.withings.0","user":"system.user.admin","lc":1641485890382} withings.0 2022-01-06 17:24:47.492 warn Terminated (UNCAUGHT_EXCEPTION): Without reason withings.0 2022-01-06 17:24:47.491 debug Plugin sentry destroyed withings.0 2022-01-06 17:24:47.489 info terminating withings.0 2022-01-06 17:24:47.466 error Cannot read property 'split' of undefined withings.0 2022-01-06 17:24:47.465 error TypeError: Cannot read property 'split' of undefined at /opt/iobroker/node_modules/iobroker.withings/main.js:155:77 at processTicksAndRejections (internal/process/task_queues.js:97:5) at Withings.login (/opt/iobroker/node_modules/iobroker.withings/main.js:134:22) at Withings.onReady (/opt/iobroker/node_modules/iobroker.withings/main.js:62:9) withings.0 2022-01-06 17:24:47.454 error unhandled promise rejection: Cannot read property 'split' of undefined withings.0 2022-01-06 17:24:47.452 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). withings.0 2022-01-06 17:24:47.449 debug {"date":"Thu, 06 Jan 2022 16:24:47 GMT","server":"Apache","content-security-policy":"frame-ancestors 'self' https://healthmate.withings.com/ https://care.withings.com/ https://care.us.withingsmed.com/","strict-transport-security":"max-age=10368000","x-xss-protection":"1","x-content-type-options":"nosniff","referrer-policy":"strict-origin-when-cross-origin","cache-control":"no-store","set-cookie":["session_key=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=withings.com","session_is_verified=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=withings.com","cookie_2fa_validation_key=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=withings.com","ns_af=DhwiD832nkkfj2; path=/; HttpOnly; Secure; SameSite=Lax"],"location":"/oauth2_user/account_login?response_type=code&client_id=<myClientId>&state=h4fhjnc2daoc3m&scope=user.activity%2Cuser.metrics%2Cuser.info&redirect_uri=http%3A%2F%2Flocalhost&b=authorize2&b=user_select","x-frame-options":"ALLOW-FROM https://healthmate.withings.com/","content-length":"0","content-type":"text/html; charset=UTF-8","connection":"close"} withings.0 2022-01-06 17:24:47.207 debug "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<!-- aaf8d2b4 -->\n\t\t<title>Wählen Sie einen Nutzer aus</title>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\">\n\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n\t\t<link rel=\"shortcut icon\" href=\"/favicon.png\" type=\"image/x-icon\">\n\n\t\t<link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"57x57\">\n\t <link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"72x72\">\n\t <link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"76x76\">\n\t <link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"114x114\">\n\t <link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"120x120\">\n\t <link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"144x144\">\n\t <link rel=\"apple-touch-icon\" href=\"/favicon.png\" sizes=\"152x152\">\n\n\t\t\t\t\t<link href=\"/min/g=baseCSS&aaf8d2b4\" rel=\"stylesheet\" type=\"text/css\" media=\"screen\">\n\t\t\t<link href=\"/min/g=blockCSS&aaf8d2b4\" rel=\"stylesheet\" type=\"text/css\" media=\"screen\">\n\t\t\n\t\t<script type=\"text/javascript\"src=\"/js/libs/analytics.js\"></script>\n\n\t\t<script></script>\n\t\t\t</head>\n\t<body>\n\t\t\t\t\t\t\t\t\t<!-- COOKIE BAR-->\n\t\t\t\t\t<div id=\"cookies\">\n <div class=\"cookie-container\">\n <div class=\"cookie-body\">\n <span class=\"title header1\">Before you continue</span>\n <p class=\"cookie-message body1\">Durch das Anklicken oder Navigieren auf dieser Website stimmen Sie unserer Verwendung von Cookies zu, die wir benutzen, um Ihnen ein besseres Erlebnis und individuelle Werbung unserer Partner bieten zu können.</p>\n <div class=\"cookie-dropdown\">\n <div class=\"dropdown-title\">\n <div class=\"checkbox-component no-mt\">\n <input id=\"essential_cookie\" type=\"checkbox\" name=\"essential_cookie\" checked disabled class=\"HMIcons_check\">\n <label for=\"essential_cookie\">Essential cookies</label>\n </div>\n <span class=\"icon HMIcons_downsm\"></span>\n </div>\n <div class=\"content\">\n <p class=\"bodyRegular\">They enable you to move around the website properly. They do not store any personally identifiable information and enable features such as accessing secure areas of the website or remembering what is in your shopping cart. They are mandatory for withings.com to operate.</p>\n </div>\n </div>\n <div class=\"cookie-dropdown\">\n <div class=\"dropdown-title\">\n <div class=\"checkbox-component no-mt\">\n <input id=\"analytics_cookie\" type=\"checkbox\" name=\"analytics_cookie\" class=\"HMIcons_check\">\n <label for=\"analytics_cookie\">Analytical cookies</label>\n </div>\n <span class=\"icon HMIcons_downsm\"></span>\n </div>\n <div class=\"content\">\n <p class=\"bodyRegular\">They allow us to collect information about how visitors use our website. For instance, we may see the total number of visits, or which pages visitors go to most often. We use this information to make sure our users find the information they are looking for, help monitor website performance indicators and solve potential bugs.</p>\n </div>\n </div>\n <div class=\"action-wrapper\">\n <div class=\"button-component no-mt\">\n <button class=\"accept-selection\">Accept selected</button>\n </div>\n <div class=\"button-component no-mt\">\n <button class=\"accept-all primary\">Accept all and close</button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<script src=\"/js/helpers/utils.js\"></script>\n<script>\n const cookiesWrapper = document.querySelector('#cookies');\n const dropDownTitles = cookiesWrapper.querySelectorAll('.dropdown-title');\n const buttons = cookiesWrapper.querySelectorAll('.action-wrapper button');\n const analyticBox = cookiesWrapper.querySelector('input#analytics_cookie');\n\n const sections = [];\n const margin = 15;\n\n // Constants\n const COOKIE_STATISTICS = 'cookieconsent_statistics';\n\tconst COOKIE_ADVERTISING = 'cookieconsent_advertising';\n\tconst COOKIE_SOCIAL = 'cookieconsent_social';\n\tconst COOKIE_WITHINGS_DISMISSED = 'withings_cookieconsent_dismissed';\n\n buttons.forEach(btn => btn.addEventListener('click', (e) => onSubmit(e)));\n cookiesWrapper.addEventListener('click', onOverlayClick);\n\n window.addEventListener('resize', closeAllSections, false);\n\n dropDownTitles.forEach((el, index) => {\n const currentContent = el.nextElementSibling;\n sections.push({ el, content: currentContent });\n\n el.addEventListener('click', (e) => toggleDropDown(e, index));\n });\n\n if (getCookie(COOKIE_STATISTICS)) {\n analyticBox.setAttribute('checked', true);\n }\n\n function closeAllSections() {\n if (!sections) return;\n\n sections.forEach((section, i) => {\n if (!section.el.classList.contains('active')) return;\n\n section.el.classList.remove('active');\n section.content.style.height = 0;\n });\n }\n\n function closeCookieModal() {\n setCookie(COOKIE_WITHINGS_DISMISSED, 'yes');\n cookiesWrapper.classList.remove('active');\n };\n\n function onUserDontConsent() {\n setCookie(COOKIE_STATISTICS, false);\n\t\tsetCookie(COOKIE_ADVERTISING, false);\n\t\tsetCookie(COOKIE_SOCIAL, false);\n }\n\n function onSubmit(e) {\n const { target: currentButtonClicked } = e;\n const isAllAccepted = currentButtonClicked && currentButtonClicked.classList.contains('accept-all');\n\n // If the checkbox is checked or the user clicked on the accept all button\n if (analyticBox.checked || isAllAccepted) {\n // Accept the analytics cookie\n setCookie(COOKIE_STATISTICS, true);\n window.location.reload();\n } else {\n onUserDontConsent();\n }\n\n closeCookieModal();\n };\n\n function toggleDropDown(e, index) {\n if (e && e.target.tagName === \"INPUT\") return;\n\n e.preventDefault();\n\n const { content: currentContent, height } = sections[index];\n\n const currentSection = sections[index].el;\n currentSection.classList.toggle('active');\n\n const isActive = currentSection.classList.contains('active');\n if (isActive) return currentContent.style.height = `${currentContent.scrollHeight + margin}px`;\n return currentContent.style.height = 0;\n };\n\n function onOverlayClick(e) {\n // Clicked on modal => return\n if (e.target.id !== 'cookies') return;\n\n // Clicked on overlay => continue\n // Close the modal and set essential cookie to true\n onUserDontConsent();\n closeCookieModal();\n };\n</script>\t\t\t\t<!-- END COOKIE BAR-->\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"app-wrapper-component\">\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"sidebar-component \">\n\t\t\t\t\t<div class=\"sidebar-content sidebar-full \">\n\t\t\t\t\t\t<div class=\"page-title\">\n\t\t\t\t\t\t\t\t<h1 class=\"header1\">Wählen Sie einen Nutzer aus</h1>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div id=\"user_selection\">\n\t\t<div class=\"user-selection-content\">\n\t\t\t<div class=\"button-component small\">\n\t\t\t\t\t\t\t\t\t<a href=\"/logout?r=https%3A%2F%2Faccount.withings.com%2Foauth2_user%2Fuser_select%3Fresponse_type%3Dcode%26client_id%3D<myClientId>%26state%3Dh4fhjnc2daoc3m%26scope%3Duser.activity%252Cuser.metrics%252Cuser.info%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%26b%3Dauthorize2\">Sind das nicht Sie?</a>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\n\t\t\t<ul class=\"list-component\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"?response_type=code&client_id=<myClientId>&state=h4fhjnc2daoc3m&scope=user.activity%2Cuser.metrics%2Cuser.info&redirect_uri=http%3A%2F%2Flocalhost&b=authorize2&selecteduser=1362620\" class=\"list-group-item\">Name User 1</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"?response_type=code&client_id=<myClientId>&state=h4fhjnc2daoc3m&scope=user.activity%2Cuser.metrics%2Cuser.info&redirect_uri=http%3A%2F%2Flocalhost&b=authorize2&selecteduser=1362621\" class=\"list-group-item\">Name User 2</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"?response_type=code&client_id=<myClientId>&state=h4fhjnc2daoc3m&scope=user.activity%2Cuser.metrics%2Cuser.info&redirect_uri=http%3A%2F%2Flocalhost&b=authorize2&selecteduser=11622612\" class=\"list-group-item\">Name User 3</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"?response_type=code&client_id=<myClientId>&state=h4fhjnc2daoc3m&scope=user.activity%2Cuser.metrics%2Cuser.info&redirect_uri=http%3A%2F%2Flocalhost&b=authorize2&selecteduser=19700099\" class=\"list-group-item\">Name User 4</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n\n\t\t\t\t\t</div>\n\t</div>\n\n\t\t\t\t\t\t<div class=\"footer-component\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"image-view-component\">\n\t\t\t\t\t<img src=\"/images/withings/side_picture.png\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\n\n\t\t\t\t\t<script type=\"text/javascript\" src=\"/min/g=baseJS&aaf8d2b4\"></script>\n\t\t\n\t\t<script type=\"text/javascript\">\n\t\t\twiService.sessionid = \"1bIq1pnOa2KzF-1t8PLfys-WsBOsEtm\";\n\t\t\tconstants.REV = \"aaf8d2b4\";\n\t\t\tconstants.COOKIE_CONSENT_DOMAIN = \"withings.com\";\n\t\t\tconst IS_PARTNER = false;\n\n\t\t\t\n\t\t\t// TODO: rework this script. Disabled because lost focus on mobile phone\n\t\t\t// Prevent autofill to stick to the inputs on scrolling sidebar\n\t\t\t// const hasInputOnPage = document.querySelector('input');\n\n\t\t\t// if (hasInputOnPage) {\n\t\t\t// \tconst sidebar = document.querySelector('.sidebar-component');\n\n\t\t\t// \tif (sidebar) {\n\t\t\t// \t\tsidebar.addEventListener('scroll', () => {\n\t\t\t// \t\t\tconst activeInput = document.querySelector('input:focus');\n\t\t\t// \t\t\tif (activeInput) activeInput.blur();\n\t\t\t// \t\t});\n\t\t\t// \t}\n\t\t\t// }\n\t\t</script>\n\t\t\t</body>\n</html>\n" withings.0 2022-01-06 17:24:46.075 debug /oauth2_user/account_login?response_type=code&client_id=<myClientId>&state=h4fhjnc2daoc3m&scope=user.activity%2Cuser.metrics%2Cuser.info&redirect_uri=http%3A%2F%2Flocalhost&b=authorize2 -
@robson
hrHeart Rate.
rr
Respiration Rate.
snoring
Total snoring time
sleep sind die letzten 24h
ja sie haben sich für ein sekunden timestampe anstatt des gängigen milliseconds timestamp ich habe überlegt im adapter schon * 1000 zu rechnen@tombox Danke für die Erklärungen. Ich denke, es würde Sinn machen hr und rr entsprechend umzubenennen, da es sonst einfach nicht schlüssig ist.
Hattest du schon mal geschaut, ob du den aktuellen Status der Schlafmatte abgreifen kannst?
Kein Gewicht/niemand liegt im Bett = false
Gewicht/im Bett = true -
@tombox Danke für die Erklärungen. Ich denke, es würde Sinn machen hr und rr entsprechend umzubenennen, da es sonst einfach nicht schlüssig ist.
Hattest du schon mal geschaut, ob du den aktuellen Status der Schlafmatte abgreifen kannst?
Kein Gewicht/niemand liegt im Bett = false
Gewicht/im Bett = true -
@robson Sehe ich so direkt nicht auch nicht in der Doku. Ist es denn vielleicht in einer der offiziellen Apps sichtbar?
-
@robson Sehe ich so direkt nicht auch nicht in der Doku. Ist es denn vielleicht in einer der offiziellen Apps sichtbar?
@tombox bei mir funktioniert seit heute der Adapter

Vorher hatte ich den Fehler mit "split of undefined" wie oben @DocGame .Ich habe eine Body Withings Waage. Werte wurden korrekt abgeholt.
"Value" wird in Gramm angezeigt, was jetzt kein Problem ist.
Es werden nur die Werte von mir angezeigt (neben mir werden noch drei weitere Personen erfasst.) Ich habe noch nicht geschaut wie ich weitere Personen darstellen kann. Muss ja auch irgendwie gehen.Ich teste mal ob sich der Wert "Value" im Ordner "withings.0.measures.measuregrps01" loggen lässt. Wahrschelich geht das nicht, weil der Name des Ordners umgenannt wird wenn sich der letzte Wert aktualisiert!? Vielleicht denke ich falsch. Mal schauen.
Edit.: "withings.0.measures.measuregrps01" lässt sich wunderbar loggen
-
@tombox bei mir funktioniert seit heute der Adapter

Vorher hatte ich den Fehler mit "split of undefined" wie oben @DocGame .Ich habe eine Body Withings Waage. Werte wurden korrekt abgeholt.
"Value" wird in Gramm angezeigt, was jetzt kein Problem ist.
Es werden nur die Werte von mir angezeigt (neben mir werden noch drei weitere Personen erfasst.) Ich habe noch nicht geschaut wie ich weitere Personen darstellen kann. Muss ja auch irgendwie gehen.Ich teste mal ob sich der Wert "Value" im Ordner "withings.0.measures.measuregrps01" loggen lässt. Wahrschelich geht das nicht, weil der Name des Ordners umgenannt wird wenn sich der letzte Wert aktualisiert!? Vielleicht denke ich falsch. Mal schauen.
Edit.: "withings.0.measures.measuregrps01" lässt sich wunderbar loggen
-
@lobomau mmh wie sieht das in der app aus haben alle das gleiche passwort und wählen dann den nutzer aus?
-
Hi ich habe ein neuen Adapter für Withings geschrieben
Integriert:
Getmeas
Getactivity
ListHeart
GetSummarySleep
getHeart
getSleepFehlt:
Getintradayactivityhr Heart Rate.
rr Respiration Rate.
snoring Total snoring time
Geräte Information werden nur bei Adapterstart abgerufen
Zum Installieren:
https://github.com/TA2k/ioBroker.withingsUnter Adapter Experten Modus aktivieren:

Unter Adapter das Github Icon klicken:

Benutzerdefiniert auswählen und die Url einfügen.

Dann unter Adapter den Withings Adapter suchen und ganz rechts auf das Plus klicken.

Loginablauf:
Die Withings Email und Passwort eingeben
https://account.withings.com/partner/dashboard_oauth2
Eine App registrieren
Name: ioBroker
Beliebiges Bild
Description: ioBroker
Email: Yourmail
Company: ioBroker
Callback URI: http://localhost
Eingeschränkter Modus: JaClient id und Client Secret eintragen
@tombox, super, Danke für den Adapter.
Mir ist die App E -Mail nicht ganz schlüssig. Welche soll es denn nun sein....
Ich habe nur "Adressen" vom Dashboard und die vom Account dashboard_oauth2.
Aber keine Mail Adressen? Wenn dann nur vom support...
Ich stehe irgendwie auf dem Schlauch.Zudem kommt immer
withings.0 2022-01-11 01:50:53.184 error [object Object] withings.0 2022-01-11 01:50:53.011 error TypeError: Cannot read property 'split' of undefinedDas kann aber vom Login kommen.
Meine Frau habe ich schon vorübergehend gelöscht.

und falls Fragen kommen sollten diesbezüglich:
which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update > /dev/null && sudo apt update && apt policy nodejsDann kommt folgende beruhigende Antwort:
/usr/bin/nodejs /usr/bin/node /usr/bin/npm v14.18.2 v14.18.2 6.14.15 pi OK:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease OK:2 http://archive.raspberrypi.org/debian bullseye InRelease OK:3 https://deb.nodesource.com/node_14.x bullseye InRelease Paketlisten werden gelesen… Fertig Abhängigkeitsbaum wird aufgebaut… Fertig Statusinformationen werden eingelesen… Fertig Alle Pakete sind aktuell. nodejs: Installiert: 14.18.2-deb-1nodesource1 Installationskandidat: 14.18.2-deb-1nodesource1 Versionstabelle: *** 14.18.2-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 12.22.5~dfsg-2~11u1 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages -
@tombox, super, Danke für den Adapter.
Mir ist die App E -Mail nicht ganz schlüssig. Welche soll es denn nun sein....
Ich habe nur "Adressen" vom Dashboard und die vom Account dashboard_oauth2.
Aber keine Mail Adressen? Wenn dann nur vom support...
Ich stehe irgendwie auf dem Schlauch.Zudem kommt immer
withings.0 2022-01-11 01:50:53.184 error [object Object] withings.0 2022-01-11 01:50:53.011 error TypeError: Cannot read property 'split' of undefinedDas kann aber vom Login kommen.
Meine Frau habe ich schon vorübergehend gelöscht.

und falls Fragen kommen sollten diesbezüglich:
which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update > /dev/null && sudo apt update && apt policy nodejsDann kommt folgende beruhigende Antwort:
/usr/bin/nodejs /usr/bin/node /usr/bin/npm v14.18.2 v14.18.2 6.14.15 pi OK:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease OK:2 http://archive.raspberrypi.org/debian bullseye InRelease OK:3 https://deb.nodesource.com/node_14.x bullseye InRelease Paketlisten werden gelesen… Fertig Abhängigkeitsbaum wird aufgebaut… Fertig Statusinformationen werden eingelesen… Fertig Alle Pakete sind aktuell. nodejs: Installiert: 14.18.2-deb-1nodesource1 Installationskandidat: 14.18.2-deb-1nodesource1 Versionstabelle: *** 14.18.2-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 12.22.5~dfsg-2~11u1 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages -
@esp8266 Es ist der login mit dem du dich auch auf dem dashboard einloggst. Bzw den Adapter nochmal neu installieren
