Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Withings v0.0.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Test Withings v0.0.x

Geplant Angeheftet Gesperrt Verschoben Tester
527 Beiträge 50 Kommentatoren 126.8k Aufrufe 45 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    tombox
    schrieb am zuletzt editiert von tombox
    #1

    Hi ich habe ein neuen Adapter für Withings geschrieben

    Integriert:
    Getmeas
    Getactivity
    ListHeart
    GetSummarySleep
    getHeart
    getSleep

    Fehlt:
    Getintradayactivity

    hr Heart Rate.

    rr Respiration Rate.

    snoring Total snoring time

    Geräte Information werden nur bei Adapterstart abgerufen

    Zum Installieren:
    https://github.com/TA2k/ioBroker.withings

    Unter Adapter Experten Modus aktivieren:
    9309457a-cad0-4ff4-946f-28df05d32801-image.png

    Unter Adapter das Github Icon klicken:
    ef5f973f-4a70-43be-bf9a-460726a69d1d-image.png
    Benutzerdefiniert auswählen und die Url einfügen.
    8328414c-da64-41d4-b524-5a75a25cb683-image.png

    Dann unter Adapter den Withings Adapter suchen und ganz rechts auf das Plus klicken.
    f59f304a-7769-463f-84d2-e36b461a87bd-image.png

    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: Ja

    Client id und Client Secret eintragen

    S M ESP8266E Damrak2022D C 7 Antworten Letzte Antwort
    3
    • T tombox

      Hi ich habe ein neuen Adapter für Withings geschrieben

      Integriert:
      Getmeas
      Getactivity
      ListHeart
      GetSummarySleep
      getHeart
      getSleep

      Fehlt:
      Getintradayactivity

      hr Heart Rate.

      rr Respiration Rate.

      snoring Total snoring time

      Geräte Information werden nur bei Adapterstart abgerufen

      Zum Installieren:
      https://github.com/TA2k/ioBroker.withings

      Unter Adapter Experten Modus aktivieren:
      9309457a-cad0-4ff4-946f-28df05d32801-image.png

      Unter Adapter das Github Icon klicken:
      ef5f973f-4a70-43be-bf9a-460726a69d1d-image.png
      Benutzerdefiniert auswählen und die Url einfügen.
      8328414c-da64-41d4-b524-5a75a25cb683-image.png

      Dann unter Adapter den Withings Adapter suchen und ganz rechts auf das Plus klicken.
      f59f304a-7769-463f-84d2-e36b461a87bd-image.png

      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: Ja

      Client id und Client Secret eintragen

      S Offline
      S Offline
      Stadtschloss
      schrieb am zuletzt editiert von Stadtschloss
      #2

      @tombox Wow! Vielen Dank für den Adapter. Der Login und die Daten holen hat problemlos geklappt 🙂

      Eine Frage zum sleepSummary. Dort befinden sich die Tage als Ordner. Die Ordnernamen verstehe ich jedoch nicht (Zahlenkombination anscheint die ID). Hättest du dafür eine Beschreibung?

      Hier wäre eine Ordnerstruktur gut, die immer gleich bleibt. Also zum Beispiel. Heute, Minus Erster Tag, Minus 2 Tag etc..

      Bildschirmfoto 2022-01-06 um 17.00.37.png

      R 1 Antwort Letzte Antwort
      0
      • T tombox

        Hi ich habe ein neuen Adapter für Withings geschrieben

        Integriert:
        Getmeas
        Getactivity
        ListHeart
        GetSummarySleep
        getHeart
        getSleep

        Fehlt:
        Getintradayactivity

        hr Heart Rate.

        rr Respiration Rate.

        snoring Total snoring time

        Geräte Information werden nur bei Adapterstart abgerufen

        Zum Installieren:
        https://github.com/TA2k/ioBroker.withings

        Unter Adapter Experten Modus aktivieren:
        9309457a-cad0-4ff4-946f-28df05d32801-image.png

        Unter Adapter das Github Icon klicken:
        ef5f973f-4a70-43be-bf9a-460726a69d1d-image.png
        Benutzerdefiniert auswählen und die Url einfügen.
        8328414c-da64-41d4-b524-5a75a25cb683-image.png

        Dann unter Adapter den Withings Adapter suchen und ganz rechts auf das Plus klicken.
        f59f304a-7769-463f-84d2-e36b461a87bd-image.png

        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: Ja

        Client id und Client Secret eintragen

        M Offline
        M Offline
        miggedy
        schrieb am zuletzt editiert von miggedy
        #3

        @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&amp;aaf8d2b4\" rel=\"stylesheet\" type=\"text/css\" media=\"screen\">\n\t\t\t<link href=\"/min/g=blockCSS&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;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
        
        
        T 2 Antworten Letzte Antwort
        0
        • M miggedy

          @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&amp;aaf8d2b4\" rel=\"stylesheet\" type=\"text/css\" media=\"screen\">\n\t\t\t<link href=\"/min/g=blockCSS&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;client_id=<myClientId>&amp;state=h4fhjnc2daoc3m&amp;scope=user.activity%2Cuser.metrics%2Cuser.info&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;b=authorize2&amp;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&amp;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
          
          
          T Offline
          T Offline
          tombox
          schrieb am zuletzt editiert von tombox
          #4

          @miggedy Könntest du mir kurz deine Zugangsdaten geben dann könnte ich das abfangen
          @Stadtschloss ich bräuchte ein account mit daten dann könnte ich das besser anordnen
          Ich habe zwar was blind angepasst aber ohne account ist es schwierig

          StuebiS 1 Antwort Letzte Antwort
          0
          • T tombox

            @miggedy Könntest du mir kurz deine Zugangsdaten geben dann könnte ich das abfangen
            @Stadtschloss ich bräuchte ein account mit daten dann könnte ich das besser anordnen
            Ich habe zwar was blind angepasst aber ohne account ist es schwierig

            StuebiS Offline
            StuebiS Offline
            Stuebi
            schrieb am zuletzt editiert von
            #5

            @tombox sagte in Test Withings v0.0.x:

            Der Adapter funktioniert bei mir wunderbar! Echt mega!!!

            VG
            Stuebi

            ioBroker auf Synology DS216+II im Docker Container

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              robson
              schrieb am zuletzt editiert von robson
              #6

              @tombox vielen Dank für den Adapter! Habe ihn gerade installiert, bekomme beim Start aber folgende Fehlermeldungen im Debug-Modus ausgegeben:

              host.ioBroker-RasPi4
              2022-01-06 21:02:06.263	error	instance system.adapter.withings.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.263	error	Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.263	error	Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:999:30)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.263	error	Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/json-bigint/index.js:1:22)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.262	error	Caught by controller[0]: at require (internal/modules/cjs/helpers.js:74:18)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:887:19)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.262	error	Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:708:14)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:863:32)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.262	error	Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:963:27)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.261	error	Caught by controller[0]: at wrapSafe (internal/modules/cjs/loader.js:915:16)
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.261	error	Caught by controller[0]: SyntaxError: Invalid or unexpected token
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.261	error	Caught by controller[0]:
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.261	error	Caught by controller[0]: length
              host.ioBroker-RasPi4
              2022-01-06 21:02:06.260	error	Caught by controller[0]: /opt/iobroker/node_modules/json-bigint/lib/stringify.js:214
              host.ioBroker-RasPi4
              2022-01-06 21:02:05.411	info	instance system.adapter.withings.0 started with pid 20078
              

              Installation und Einrichtung über https://account.withings.com/partner/dashboard_oauth2 liefen ohne Probleme.

              Thomas BraunT T 2 Antworten Letzte Antwort
              0
              • R robson

                @tombox vielen Dank für den Adapter! Habe ihn gerade installiert, bekomme beim Start aber folgende Fehlermeldungen im Debug-Modus ausgegeben:

                host.ioBroker-RasPi4
                2022-01-06 21:02:06.263	error	instance system.adapter.withings.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.263	error	Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.263	error	Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:999:30)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.263	error	Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/json-bigint/index.js:1:22)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.262	error	Caught by controller[0]: at require (internal/modules/cjs/helpers.js:74:18)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:887:19)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.262	error	Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:708:14)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:863:32)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.262	error	Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:963:27)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.261	error	Caught by controller[0]: at wrapSafe (internal/modules/cjs/loader.js:915:16)
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.261	error	Caught by controller[0]: SyntaxError: Invalid or unexpected token
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.261	error	Caught by controller[0]:
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.261	error	Caught by controller[0]: length
                host.ioBroker-RasPi4
                2022-01-06 21:02:06.260	error	Caught by controller[0]: /opt/iobroker/node_modules/json-bigint/lib/stringify.js:214
                host.ioBroker-RasPi4
                2022-01-06 21:02:05.411	info	instance system.adapter.withings.0 started with pid 20078
                

                Installation und Einrichtung über https://account.withings.com/partner/dashboard_oauth2 liefen ohne Probleme.

                Thomas BraunT Online
                Thomas BraunT Online
                Thomas Braun
                Most Active
                schrieb am zuletzt editiert von Thomas Braun
                #7

                @robson

                Ohne konkreten Verdacht:

                which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update > /dev/null  && sudo apt update && apt policy nodejs
                

                sagt dir?

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                R 1 Antwort Letzte Antwort
                0
                • Thomas BraunT Thomas Braun

                  @robson

                  Ohne konkreten Verdacht:

                  which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update > /dev/null  && sudo apt update && apt policy nodejs
                  

                  sagt dir?

                  R Offline
                  R Offline
                  robson
                  schrieb am zuletzt editiert von robson
                  #8

                  @thomas-braun

                  Sagt mir zwar folgendes, aber mir relativ wenig:

                  /usr/bin/nodejs
                  /usr/bin/node
                  /usr/bin/npm
                  v12.22.8
                  v12.22.8
                  6.14.15
                  
                  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
                  
                  OK:1 https://deb.nodesource.com/node_12.x buster InRelease
                  OK:2 http://archive.raspberrypi.org/debian buster InRelease
                  OK:3 http://raspbian.raspberrypi.org/raspbian buster InRelease
                  Paketlisten werden gelesen... Fertig
                  Abhängigkeitsbaum wird aufgebaut.
                  Statusinformationen werden eingelesen.... Fertig
                  Aktualisierung für 4 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.
                  nodejs:
                    Installiert:           12.22.8-deb-1nodesource1
                    Installationskandidat: 12.22.8-deb-1nodesource1
                    Versionstabelle:
                   *** 12.22.8-deb-1nodesource1 500
                          500 https://deb.nodesource.com/node_12.x buster/main armhf Packages
                          100 /var/lib/dpkg/status
                       10.24.0~dfsg-1~deb10u1 500
                          500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
                  

                  Und

                  apt list --upgradable
                  

                  gibt aus:

                  Auflistung... Fertig
                  apache2-bin/oldstable 2.4.38-3+deb10u7 armhf [aktualisierbar von: 2.4.38-3+deb10u6]
                  apache2-data/oldstable 2.4.38-3+deb10u7 all [aktualisierbar von: 2.4.38-3+deb10u6]
                  apache2-utils/oldstable 2.4.38-3+deb10u7 armhf [aktualisierbar von: 2.4.38-3+deb10u6]
                  apache2/oldstable 2.4.38-3+deb10u7 armhf [aktualisierbar von: 2.4.38-3+deb10u6]
                  
                  Thomas BraunT 1 Antwort Letzte Antwort
                  0
                  • R robson

                    @thomas-braun

                    Sagt mir zwar folgendes, aber mir relativ wenig:

                    /usr/bin/nodejs
                    /usr/bin/node
                    /usr/bin/npm
                    v12.22.8
                    v12.22.8
                    6.14.15
                    
                    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
                    
                    OK:1 https://deb.nodesource.com/node_12.x buster InRelease
                    OK:2 http://archive.raspberrypi.org/debian buster InRelease
                    OK:3 http://raspbian.raspberrypi.org/raspbian buster InRelease
                    Paketlisten werden gelesen... Fertig
                    Abhängigkeitsbaum wird aufgebaut.
                    Statusinformationen werden eingelesen.... Fertig
                    Aktualisierung für 4 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.
                    nodejs:
                      Installiert:           12.22.8-deb-1nodesource1
                      Installationskandidat: 12.22.8-deb-1nodesource1
                      Versionstabelle:
                     *** 12.22.8-deb-1nodesource1 500
                            500 https://deb.nodesource.com/node_12.x buster/main armhf Packages
                            100 /var/lib/dpkg/status
                         10.24.0~dfsg-1~deb10u1 500
                            500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
                    

                    Und

                    apt list --upgradable
                    

                    gibt aus:

                    Auflistung... Fertig
                    apache2-bin/oldstable 2.4.38-3+deb10u7 armhf [aktualisierbar von: 2.4.38-3+deb10u6]
                    apache2-data/oldstable 2.4.38-3+deb10u7 all [aktualisierbar von: 2.4.38-3+deb10u6]
                    apache2-utils/oldstable 2.4.38-3+deb10u7 armhf [aktualisierbar von: 2.4.38-3+deb10u6]
                    apache2/oldstable 2.4.38-3+deb10u7 armhf [aktualisierbar von: 2.4.38-3+deb10u6]
                    
                    Thomas BraunT Online
                    Thomas BraunT Online
                    Thomas Braun
                    Most Active
                    schrieb am zuletzt editiert von Thomas Braun
                    #9

                    @robson
                    Unabhängig vom 'Problem' würde ich auch die empfohlene und für ioBroker vorgesehene V14 springen.

                    Und den Indianer auch gleich auf Stand bringen.

                    Linux-Werkzeugkasten:
                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                    NodeJS Fixer Skript:
                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                    1 Antwort Letzte Antwort
                    0
                    • R robson

                      @tombox vielen Dank für den Adapter! Habe ihn gerade installiert, bekomme beim Start aber folgende Fehlermeldungen im Debug-Modus ausgegeben:

                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.263	error	instance system.adapter.withings.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.263	error	Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.263	error	Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:999:30)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.263	error	Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/json-bigint/index.js:1:22)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.262	error	Caught by controller[0]: at require (internal/modules/cjs/helpers.js:74:18)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:887:19)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.262	error	Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:708:14)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:863:32)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.262	error	Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.262	error	Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:963:27)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.261	error	Caught by controller[0]: at wrapSafe (internal/modules/cjs/loader.js:915:16)
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.261	error	Caught by controller[0]: SyntaxError: Invalid or unexpected token
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.261	error	Caught by controller[0]:
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.261	error	Caught by controller[0]: length
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:06.260	error	Caught by controller[0]: /opt/iobroker/node_modules/json-bigint/lib/stringify.js:214
                      host.ioBroker-RasPi4
                      2022-01-06 21:02:05.411	info	instance system.adapter.withings.0 started with pid 20078
                      

                      Installation und Einrichtung über https://account.withings.com/partner/dashboard_oauth2 liefen ohne Probleme.

                      T Offline
                      T Offline
                      tombox
                      schrieb am zuletzt editiert von
                      #10

                      @robson spontan fällt mir auch nichts ein außer node und js-controller zu aktualisieren

                      1 Antwort Letzte Antwort
                      0
                      • R Offline
                        R Offline
                        robson
                        schrieb am zuletzt editiert von
                        #11

                        @thomas-braun sagte in Test Withings v0.0.x:

                        @robson
                        Unabhängig vom 'Problem' würde ich auch die empfohlene und für ioBroker vorgesehene V14 springen.

                        Und den Indianer auch gleich auf Stand bringen.

                        @tombox sagte in Test Withings v0.0.x:

                        @robson spontan fällt mir auch nichts ein außer node und js-controller zu aktualisieren

                        Freunde, das wars 🙂 Node ist jetzt auf v14.x und der Adapter läuft.
                        Ich teste in den kommenden Tagen mal fleißig und berichte.

                        Thomas BraunT 1 Antwort Letzte Antwort
                        0
                        • R robson

                          @thomas-braun sagte in Test Withings v0.0.x:

                          @robson
                          Unabhängig vom 'Problem' würde ich auch die empfohlene und für ioBroker vorgesehene V14 springen.

                          Und den Indianer auch gleich auf Stand bringen.

                          @tombox sagte in Test Withings v0.0.x:

                          @robson spontan fällt mir auch nichts ein außer node und js-controller zu aktualisieren

                          Freunde, das wars 🙂 Node ist jetzt auf v14.x und der Adapter läuft.
                          Ich teste in den kommenden Tagen mal fleißig und berichte.

                          Thomas BraunT Online
                          Thomas BraunT Online
                          Thomas Braun
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @robson

                          'Kontrolle':

                          which nodejs node npm && nodejs -v && node -v && npm -v && whoami && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
                          iobroker update -i
                          

                          Linux-Werkzeugkasten:
                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                          NodeJS Fixer Skript:
                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                          R 1 Antwort Letzte Antwort
                          0
                          • Thomas BraunT Thomas Braun

                            @robson

                            'Kontrolle':

                            which nodejs node npm && nodejs -v && node -v && npm -v && whoami && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
                            iobroker update -i
                            
                            R Offline
                            R Offline
                            robson
                            schrieb am zuletzt editiert von
                            #13

                            @thomas-braun

                            Es passt. Node steht auf 14.18.2 und NPM auf 6.14.15.

                            Danke noch mal.

                            Thomas BraunT 1 Antwort Letzte Antwort
                            0
                            • R robson

                              @thomas-braun

                              Es passt. Node steht auf 14.18.2 und NPM auf 6.14.15.

                              Danke noch mal.

                              Thomas BraunT Online
                              Thomas BraunT Online
                              Thomas Braun
                              Most Active
                              schrieb am zuletzt editiert von Thomas Braun
                              #14

                              @robson

                              Bitte die komplette Ausgabe zeigen.

                              Linux-Werkzeugkasten:
                              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                              NodeJS Fixer Skript:
                              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                              R 1 Antwort Letzte Antwort
                              0
                              • Thomas BraunT Thomas Braun

                                @robson

                                Bitte die komplette Ausgabe zeigen.

                                R Offline
                                R Offline
                                robson
                                schrieb am zuletzt editiert von
                                #15

                                @thomas-braun
                                Wieso möchtest du das so genau wissen? Aber ich habe nichts zu verbergen:

                                /usr/bin/nodejs
                                /usr/bin/node
                                /usr/bin/npm
                                v14.18.2
                                v14.18.2
                                6.14.15
                                pi
                                OK:1 https://deb.nodesource.com/node_14.x buster InRelease
                                OK:2 http://archive.raspberrypi.org/debian buster InRelease
                                OK:3 http://raspbian.raspberrypi.org/raspbian buster InRelease
                                Paketlisten werden gelesen... Fertig
                                Abhängigkeitsbaum wird aufgebaut.
                                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 buster/main armhf Packages
                                        100 /var/lib/dpkg/status
                                     10.24.0~dfsg-1~deb10u1 500
                                        500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
                                
                                
                                Thomas BraunT 1 Antwort Letzte Antwort
                                0
                                • R robson

                                  @thomas-braun
                                  Wieso möchtest du das so genau wissen? Aber ich habe nichts zu verbergen:

                                  /usr/bin/nodejs
                                  /usr/bin/node
                                  /usr/bin/npm
                                  v14.18.2
                                  v14.18.2
                                  6.14.15
                                  pi
                                  OK:1 https://deb.nodesource.com/node_14.x buster InRelease
                                  OK:2 http://archive.raspberrypi.org/debian buster InRelease
                                  OK:3 http://raspbian.raspberrypi.org/raspbian buster InRelease
                                  Paketlisten werden gelesen... Fertig
                                  Abhängigkeitsbaum wird aufgebaut.
                                  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 buster/main armhf Packages
                                          100 /var/lib/dpkg/status
                                       10.24.0~dfsg-1~deb10u1 500
                                          500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
                                  
                                  
                                  Thomas BraunT Online
                                  Thomas BraunT Online
                                  Thomas Braun
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #16

                                  @robson sagte in Test Withings v0.0.x:

                                  Wieso möchtest du das so genau wissen? Aber ich habe nichts zu verbergen:

                                  Weil hier schon mehr als einmal jemand behauptet hat:
                                  Jaja, alles richtig installiert! Natürlich!

                                  Und bei Rückfrage war dann doch alles krumm im System.

                                  Aber bist entlassen, passt alles. 😄

                                  Linux-Werkzeugkasten:
                                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                  NodeJS Fixer Skript:
                                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Stadtschloss

                                    @tombox Wow! Vielen Dank für den Adapter. Der Login und die Daten holen hat problemlos geklappt 🙂

                                    Eine Frage zum sleepSummary. Dort befinden sich die Tage als Ordner. Die Ordnernamen verstehe ich jedoch nicht (Zahlenkombination anscheint die ID). Hättest du dafür eine Beschreibung?

                                    Hier wäre eine Ordnerstruktur gut, die immer gleich bleibt. Also zum Beispiel. Heute, Minus Erster Tag, Minus 2 Tag etc..

                                    Bildschirmfoto 2022-01-06 um 17.00.37.png

                                    R Offline
                                    R Offline
                                    robson
                                    schrieb am zuletzt editiert von
                                    #17

                                    @stadtschloss sagte in Test Withings v0.0.x:

                                    @tombox Wow! Vielen Dank für den Adapter. Der Login und die Daten holen hat problemlos geklappt 🙂

                                    Eine Frage zum sleepSummary. Dort befinden sich die Tage als Ordner. Die Ordnernamen verstehe ich jedoch nicht (Zahlenkombination anscheint die ID). Hättest du dafür eine Beschreibung?

                                    Hier wäre eine Ordnerstruktur gut, die immer gleich bleibt. Also zum Beispiel. Heute, Minus Erster Tag, Minus 2 Tag etc..

                                    Bildschirmfoto 2022-01-06 um 17.00.37.png

                                    Ich weiß nicht, ob es bei mir bereits die von @tombox angesprochenen Änderungen sind, aber die Schlafdaten meines Aura Sensor V2 werden wie folgt dargestellt:
                                    sleepsummary.jpg

                                    Die gelb markierte ID, ist die Nummer, die bei dir die Ordnernamen darstellt.

                                    T 1 Antwort Letzte Antwort
                                    0
                                    • R Offline
                                      R Offline
                                      robson
                                      schrieb am zuletzt editiert von
                                      #18

                                      @tombox Was ich aktuell noch vermisse, ist der Status, den mein Sleep Sensor ausgibt. True = im Bett, False = nicht im Bett.

                                      Ich habe mir mal die API-Beschreibung bei Withings angeschaut. Kann es sein, dass dies der "sleep state" ist? Den finde ich nämlich aktuell in meinen Objekten nicht.
                                      api.jpg

                                      Hintergrund: über diesen Status steuere ich aktuell Aktivierung/Deaktivierung des Hüllschutzes im Haus. MeineAbfrage läuft aktuell über IFTTT. Das ist aber leider fehleranfällig und träge.

                                      T 1 Antwort Letzte Antwort
                                      0
                                      • R robson

                                        @stadtschloss sagte in Test Withings v0.0.x:

                                        @tombox Wow! Vielen Dank für den Adapter. Der Login und die Daten holen hat problemlos geklappt 🙂

                                        Eine Frage zum sleepSummary. Dort befinden sich die Tage als Ordner. Die Ordnernamen verstehe ich jedoch nicht (Zahlenkombination anscheint die ID). Hättest du dafür eine Beschreibung?

                                        Hier wäre eine Ordnerstruktur gut, die immer gleich bleibt. Also zum Beispiel. Heute, Minus Erster Tag, Minus 2 Tag etc..

                                        Bildschirmfoto 2022-01-06 um 17.00.37.png

                                        Ich weiß nicht, ob es bei mir bereits die von @tombox angesprochenen Änderungen sind, aber die Schlafdaten meines Aura Sensor V2 werden wie folgt dargestellt:
                                        sleepsummary.jpg

                                        Die gelb markierte ID, ist die Nummer, die bei dir die Ordnernamen darstellt.

                                        T Offline
                                        T Offline
                                        tombox
                                        schrieb am zuletzt editiert von
                                        #19

                                        @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."

                                        R 1 Antwort Letzte Antwort
                                        0
                                        • R robson

                                          @tombox Was ich aktuell noch vermisse, ist der Status, den mein Sleep Sensor ausgibt. True = im Bett, False = nicht im Bett.

                                          Ich habe mir mal die API-Beschreibung bei Withings angeschaut. Kann es sein, dass dies der "sleep state" ist? Den finde ich nämlich aktuell in meinen Objekten nicht.
                                          api.jpg

                                          Hintergrund: über diesen Status steuere ich aktuell Aktivierung/Deaktivierung des Hüllschutzes im Haus. MeineAbfrage läuft aktuell über IFTTT. Das ist aber leider fehleranfällig und träge.

                                          T Offline
                                          T Offline
                                          tombox
                                          schrieb am zuletzt editiert von
                                          #20

                                          @robson Ich habe mal den sleep get endpoint hinzugefügt aber keine ahnung wie daten aussehen die da rausfallen

                                          R 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          634

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe