Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Einloggen auf Webseite und bedienen

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    1.6k

  • Neuer ioBroker-Blog online: MonatsrĂŒckblick MĂ€rz/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.3k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    1.2k

Einloggen auf Webseite und bedienen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
19 BeitrÀge 7 Kommentatoren 2.3k Aufrufe 7 Beobachtet
  • Ä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.
  • I Int17

    Der Heizungsanbieter Wolf bietet seinen Kunden ein Portalzugang an, wo man die Daten (Benutzer & Fachmann) der Heizung anschauen und Parameter verĂ€ndern kann. Hierzu gibt es im iobroker einen entsprechenden Adapter, der diese Daten lesen kann. Daten aus dem Fachmann-MenĂŒ werden leider nur aktualisiert, wenn man diese im Portal aufruft. Somit liest der Adapter solange alte Werte, bis man sich eingeloggt hat und das entsprechende Fachmann-MenĂŒ aufgerufen hat.
    Ich habe zwar dieses Problem bei Wolf gemeldet, denke aber nicht, dass man reagieren wird.
    Daher suche ich nach einer Lösung, dieses hĂ€ndische Vorgehen zu automatisieren. Das Script mĂŒsste sich:

    1. Anmelden auf https://www.wolf-smartset.com/
      klu_001.jpg

    2. Die Anlage öffnen:
      klu_002.jpg

    3. Das Fachmannkennwort (1111) eingeben:
      klu_003.jpg

    4. Nochmal unter Fachmann HeizgerÀt wÀhlen:
      klu_004.jpg

    5. und hier Parameter HG wÀhlen:
      klu_005.jpg

    klu_006.jpg

    Bei meiner Suche bin ich auf eine mögliche Lösung per request gestoßen, die abgeĂ€ndert so aussieht, wobei new Buffer mittlerweile deprecated ist
    31e33726-8eaa-46ca-b932-1119d20a575e-grafik.png

    function loginto() {
        var request = require('request'),
            username = "xxxxxxx",
            password = "xxxxxx",
            url = 'https://www.wolf-smartset.com/',
            auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
    
        request({
                url : url,
                headers : {'Authorization' : auth}
            },
    
            function (error, response, body) {
                    log('error: ' + error);
                    log('response: ' + JSON.stringify(response));
                    log('body: ' + body);
            }
        );
    }
    loginto();
    

    Hier scheitere ich schon, weil die Webseite Cookies erlaubt haben will:
    klu_007.jpg

    Könnte bitte einer mit mehr Ahnung als ich (>0) bewerten, ob das ĂŒberhaupt per request machbar ist und wenn ja, mich beim Script unterstĂŒtzen. Die Zugangsdaten (Leseberechtigung) sind im Script zu finden.
    Die Nutzung des direkten Link https://www.wolf-smartset.com/index.html#/system/42321/HeizgerÀt/2 wird nicht zugelassen.

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von
    #10

    @int17 sagte in Einloggen auf Webseite und bedienen:

    wobei new Buffer mittlerweile deprecated ist

    Die Lösung steht aber im Textfeld direkt mit dabei

    use Buffer.from

    @codierknecht sagte in Einloggen auf Webseite und bedienen:

    axios.defaults.withCredentials = true;

    das funktioniert nur wenn man axios im browser verwendet.
    da wird der cookiespeicher des browsers verwendet.
    Unter node geht das nicht. da benötigt man entweder eigenverwaltung oder ein cookiejar bibliothek

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    1 Antwort Letzte Antwort
    0
    • I Offline
      I Offline
      Int17
      schrieb am zuletzt editiert von
      #11

      Wie geschrieben, ist Java absolutes Neuland fĂŒr mich. Hoffte, dass jemand ein Beispiel hat, dass ich abĂ€ndern/verwenden kann. Daher hatte ich die Credentials auch veröffentlich, falls jemand das selber probieren will.
      Bei Durchforsten habe ich dieses Beispiel gefunden.
      @mcm57 : Da hast du natĂŒrlich Recht, dass der Adapter das sinnvollerweise machen sollte.

      OliverIOO 1 Antwort Letzte Antwort
      0
      • I Int17

        Wie geschrieben, ist Java absolutes Neuland fĂŒr mich. Hoffte, dass jemand ein Beispiel hat, dass ich abĂ€ndern/verwenden kann. Daher hatte ich die Credentials auch veröffentlich, falls jemand das selber probieren will.
        Bei Durchforsten habe ich dieses Beispiel gefunden.
        @mcm57 : Da hast du natĂŒrlich Recht, dass der Adapter das sinnvollerweise machen sollte.

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #12

        @int17
        deswegen schreibst du ja hier und wir antworten.
        allerdings musst du deine Probleme konkret benennen.
        Evtl löst es auch jemand fĂŒr dich, aber im zweifel wirst du dich selbst durchbeissen mĂŒssen und viel lesen.

        du hattest ja bereits eine Anfangslösung.
        zum Thema buffer hatte ich dir geantwortet
        zum Thema cookies, habe ich dir auch einen Hinweis gegeben.
        ob du jetzt das "veraltete" request, bei der die cookieverwaltung eingebaut ist, nutzt
        oder das neuere axios mit evtl zusĂ€tzlichen bibliotheken bleibt dir ĂŒberlassen.
        wenn dein kenntnisstand nicht so ist, wĂŒrde ich dir request empfehlen.

        1. nutzt das iobroker selbst noch
        2. das ist eine ausgereifte bibliothek, sie nutzt halt callbacks, aber kann man durchaus benutzen
        3. deine cookiebehandlung ist direkt eingebaut, du musst nur eine option auf true setzen
        4. es gibt wirklich viele beispiele zu request
        5. dokumentation mit beispiel mit aktivierten cookies, link fĂŒr die markierung dĂŒrfte in chrome direkt funktionieren: https://github.com/request/request#examples:~:text=To use a custom cookie jar (instead of request’s global cookie jar)%2C set jar to an instance of request.jar() (either in defaults or options)

        FĂŒr weitere Probleme frage hier gerne nach mit möglichst genauer Problembeschreibung.

        Die einzelnen Requests entlang des einloggens und woher die angezeigten Daten kommen kann man ganz gut ĂŒber die Web Developer Tools nachvollziehen. Im Browser F12 drĂŒcken

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        I 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @int17
          deswegen schreibst du ja hier und wir antworten.
          allerdings musst du deine Probleme konkret benennen.
          Evtl löst es auch jemand fĂŒr dich, aber im zweifel wirst du dich selbst durchbeissen mĂŒssen und viel lesen.

          du hattest ja bereits eine Anfangslösung.
          zum Thema buffer hatte ich dir geantwortet
          zum Thema cookies, habe ich dir auch einen Hinweis gegeben.
          ob du jetzt das "veraltete" request, bei der die cookieverwaltung eingebaut ist, nutzt
          oder das neuere axios mit evtl zusĂ€tzlichen bibliotheken bleibt dir ĂŒberlassen.
          wenn dein kenntnisstand nicht so ist, wĂŒrde ich dir request empfehlen.

          1. nutzt das iobroker selbst noch
          2. das ist eine ausgereifte bibliothek, sie nutzt halt callbacks, aber kann man durchaus benutzen
          3. deine cookiebehandlung ist direkt eingebaut, du musst nur eine option auf true setzen
          4. es gibt wirklich viele beispiele zu request
          5. dokumentation mit beispiel mit aktivierten cookies, link fĂŒr die markierung dĂŒrfte in chrome direkt funktionieren: https://github.com/request/request#examples:~:text=To use a custom cookie jar (instead of request’s global cookie jar)%2C set jar to an instance of request.jar() (either in defaults or options)

          FĂŒr weitere Probleme frage hier gerne nach mit möglichst genauer Problembeschreibung.

          Die einzelnen Requests entlang des einloggens und woher die angezeigten Daten kommen kann man ganz gut ĂŒber die Web Developer Tools nachvollziehen. Im Browser F12 drĂŒcken

          I Offline
          I Offline
          Int17
          schrieb am zuletzt editiert von
          #13

          @oliverio Ok, danke.

          I 1 Antwort Letzte Antwort
          0
          • I Int17

            @oliverio Ok, danke.

            I Offline
            I Offline
            Int17
            schrieb am zuletzt editiert von Int17
            #14

            Wie eingangs schon beschrieben, habe ich von Java Script keine Ahnung. Aus dem Bekanntenkreis konnte ich aber einem Webentwickler das Problem vorstellen. Der hat sich das angeschaut und erstmal festgestellt, dass die Wolf Smartset Seite ebenfalls die selbe API nutzt, um an die Daten zu kommen. Dann hat er mir ein Phyton Script gebaut, dass mit Selenium und Chrome als Browser, die gleichen Eingaben machen kann, als wenn man selber die Seite besuchen wĂŒrde. Startet man das Py-Script, so wird nach einer kurzen Verweilzeit (time.sleep(15)) auf der Fachman/Heizung-Seite, der Verdichterwert aktualisiert und der iobroker Adapter bekommt das natĂŒrlich auch mit. Per Cron jetzt das Script in Intervallen zu starten bringt keinen Erfolg.

            # -*- coding: utf-8 -*-
            
            import time
            from selenium import webdriver
            from selenium.common.exceptions import StaleElementReferenceException
            from selenium.webdriver.common.by import By
            from selenium.webdriver.chrome.options import Options
            from selenium.webdriver.support.ui import WebDriverWait
            from selenium.webdriver.support import expected_conditions as EC
            
            def safe_click(driver, by, value, timeout=10):
                try:
                    element = WebDriverWait(driver, timeout).until(
                        EC.element_to_be_clickable((by, value))
                    )
                    element.click()
                except StaleElementReferenceException:
                    print("StaleElementReferenceException: Element nicht mehr im DOM. Wiederholen...")
                    safe_click(driver, by, value, timeout)
            
            driver = webdriver.Chrome()
            # eigener Token
            driver.get("https://www.wolf-smartset.com/idsrv/Account/Login?ReturnUrl=%2Fidsrv%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3Dsmartset.web%26redirect_uri%3Dhttps%253A%252F%252Fwww.wolf-smartset.com%252Fsignin-callback.html%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520api%2520role%26state%3Ddae24383364a6d5a44acb10197%26code_challenge%3DtxZ8TioCs_luMaLCqFVg7l2GKRt5aNFRT0BvLg%26code_challenge_method%3DS256%26response_mode%3Dquery%26lang%3Dde-DE")
            
            
            driver.implicitly_wait(5)
            # Benutzername
            input_field = driver.find_element(by=By.ID, value="Input_Username")
            input_field.send_keys("iobroker_klu")
            # Kennwort 
            password_field = driver.find_element(by=By.ID, value="Input_Password")
            password_field.send_keys("<passwort>")
            
            safe_click(driver, By.CSS_SELECTOR, ".login-button")
            safe_click(driver, By.ID, "link")
            safe_click(driver, By.CSS_SELECTOR, ".k-grid-Öffnen")
            safe_click(driver, By.CSS_SELECTOR, "#open-system-menu .k-last")
            
            driver.implicitly_wait(5)
            expert_login = driver.find_element(by=By.ID, value="expert-login-view-passwd")
            # Fachmann Passwort
            expert_login.send_keys("1111")
            
            safe_click(driver, By.CSS_SELECTOR, "#expert-login-view [type=submit]")
            
            safe_click(driver, By.CSS_SELECTOR, "#open-system-menu_mn_active")
            safe_click(driver, By.CSS_SELECTOR, "#open-system-menu_mn_active a")
            
            time.sleep(15)
            
            driver.quit()
            

            Ich verfolge dieses Problem nicht mehr, da sich mit ism7mqtt ein lokale und somit bessere Lösung ergeben hat. Falls das jemand unter Linux nachbauen will.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • I Int17

              Wie eingangs schon beschrieben, habe ich von Java Script keine Ahnung. Aus dem Bekanntenkreis konnte ich aber einem Webentwickler das Problem vorstellen. Der hat sich das angeschaut und erstmal festgestellt, dass die Wolf Smartset Seite ebenfalls die selbe API nutzt, um an die Daten zu kommen. Dann hat er mir ein Phyton Script gebaut, dass mit Selenium und Chrome als Browser, die gleichen Eingaben machen kann, als wenn man selber die Seite besuchen wĂŒrde. Startet man das Py-Script, so wird nach einer kurzen Verweilzeit (time.sleep(15)) auf der Fachman/Heizung-Seite, der Verdichterwert aktualisiert und der iobroker Adapter bekommt das natĂŒrlich auch mit. Per Cron jetzt das Script in Intervallen zu starten bringt keinen Erfolg.

              # -*- coding: utf-8 -*-
              
              import time
              from selenium import webdriver
              from selenium.common.exceptions import StaleElementReferenceException
              from selenium.webdriver.common.by import By
              from selenium.webdriver.chrome.options import Options
              from selenium.webdriver.support.ui import WebDriverWait
              from selenium.webdriver.support import expected_conditions as EC
              
              def safe_click(driver, by, value, timeout=10):
                  try:
                      element = WebDriverWait(driver, timeout).until(
                          EC.element_to_be_clickable((by, value))
                      )
                      element.click()
                  except StaleElementReferenceException:
                      print("StaleElementReferenceException: Element nicht mehr im DOM. Wiederholen...")
                      safe_click(driver, by, value, timeout)
              
              driver = webdriver.Chrome()
              # eigener Token
              driver.get("https://www.wolf-smartset.com/idsrv/Account/Login?ReturnUrl=%2Fidsrv%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3Dsmartset.web%26redirect_uri%3Dhttps%253A%252F%252Fwww.wolf-smartset.com%252Fsignin-callback.html%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520api%2520role%26state%3Ddae24383364a6d5a44acb10197%26code_challenge%3DtxZ8TioCs_luMaLCqFVg7l2GKRt5aNFRT0BvLg%26code_challenge_method%3DS256%26response_mode%3Dquery%26lang%3Dde-DE")
              
              
              driver.implicitly_wait(5)
              # Benutzername
              input_field = driver.find_element(by=By.ID, value="Input_Username")
              input_field.send_keys("iobroker_klu")
              # Kennwort 
              password_field = driver.find_element(by=By.ID, value="Input_Password")
              password_field.send_keys("<passwort>")
              
              safe_click(driver, By.CSS_SELECTOR, ".login-button")
              safe_click(driver, By.ID, "link")
              safe_click(driver, By.CSS_SELECTOR, ".k-grid-Öffnen")
              safe_click(driver, By.CSS_SELECTOR, "#open-system-menu .k-last")
              
              driver.implicitly_wait(5)
              expert_login = driver.find_element(by=By.ID, value="expert-login-view-passwd")
              # Fachmann Passwort
              expert_login.send_keys("1111")
              
              safe_click(driver, By.CSS_SELECTOR, "#expert-login-view [type=submit]")
              
              safe_click(driver, By.CSS_SELECTOR, "#open-system-menu_mn_active")
              safe_click(driver, By.CSS_SELECTOR, "#open-system-menu_mn_active a")
              
              time.sleep(15)
              
              driver.quit()
              

              Ich verfolge dieses Problem nicht mehr, da sich mit ism7mqtt ein lokale und somit bessere Lösung ergeben hat. Falls das jemand unter Linux nachbauen will.

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #15

              @int17

              Schluckt halt ne Menge Ressourcen, da versteckt ein kompletter Browser gestartet wird.
              Aber wenn es funkzioniert

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              I 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @int17

                Schluckt halt ne Menge Ressourcen, da versteckt ein kompletter Browser gestartet wird.
                Aber wenn es funkzioniert

                I Offline
                I Offline
                Int17
                schrieb am zuletzt editiert von Int17
                #16

                @oliverio
                Ja, da hast du natĂŒrlich Recht.
                Aber das Wolf das Problem lösen wird, sehe ich im Moment nicht. da die letzte Reaktion vom Support das war:
                Wir können Ihnen leider keine Auskunft geben da wir diese Funktion ĂŒber Externe Anbindungsmöglichkeiten nicht vertreten.
                Zudem ist diese Lösung lokal und man ist von nichts abhÀngig.

                M 1 Antwort Letzte Antwort
                0
                • I Int17

                  @oliverio
                  Ja, da hast du natĂŒrlich Recht.
                  Aber das Wolf das Problem lösen wird, sehe ich im Moment nicht. da die letzte Reaktion vom Support das war:
                  Wir können Ihnen leider keine Auskunft geben da wir diese Funktion ĂŒber Externe Anbindungsmöglichkeiten nicht vertreten.
                  Zudem ist diese Lösung lokal und man ist von nichts abhÀngig.

                  M Offline
                  M Offline
                  musicowl
                  schrieb am zuletzt editiert von
                  #17

                  @int17

                  @mimquadrat: Bist Du noch bei Wolf? Oder hast Du die Firma oder Rolle verlassen und bist raus ;-)? Wir brÀuchten Deine Hilfe :-)!

                  Viele GrĂŒĂŸe,

                  musicowl

                  I 1 Antwort Letzte Antwort
                  0
                  • M musicowl

                    @int17

                    @mimquadrat: Bist Du noch bei Wolf? Oder hast Du die Firma oder Rolle verlassen und bist raus ;-)? Wir brÀuchten Deine Hilfe :-)!

                    Viele GrĂŒĂŸe,

                    musicowl

                    I Offline
                    I Offline
                    Int17
                    schrieb am zuletzt editiert von
                    #18

                    @musicowl
                    18.12.23 Abschließende Aussage von Wolf
                    ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                    wie bereits erwĂ€hnt bitten wir keine UnterstĂŒtzung von IoBroker dies ist eine 3 Anbietersoftware mit welcher wir in keiner Verbindung stehen und daher
                    keine UnterstĂŒtzung bitten.

                    Ebenso wissen wir nicht wer hinter dem Namen mimquadrat steckt und ob besagt Person wirklich bei Wolf arbeitet / gearbeitet hat.

                    Mit freundlichen GrĂŒĂŸen

                    Mathies Jung
                    K u n d e n s e r v i c e W O L F G m b H
                    ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

                    W 1 Antwort Letzte Antwort
                    0
                    • I Int17

                      @musicowl
                      18.12.23 Abschließende Aussage von Wolf
                      ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                      wie bereits erwĂ€hnt bitten wir keine UnterstĂŒtzung von IoBroker dies ist eine 3 Anbietersoftware mit welcher wir in keiner Verbindung stehen und daher
                      keine UnterstĂŒtzung bitten.

                      Ebenso wissen wir nicht wer hinter dem Namen mimquadrat steckt und ob besagt Person wirklich bei Wolf arbeitet / gearbeitet hat.

                      Mit freundlichen GrĂŒĂŸen

                      Mathies Jung
                      K u n d e n s e r v i c e W O L F G m b H
                      ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

                      W Offline
                      W Offline
                      Wch
                      schrieb am zuletzt editiert von
                      #19

                      Moin @all âœŒđŸŒ

                      Seit 3tagen wird nun auch keinen WĂ€rmemenge mehr zur Smartset-
                      App ĂŒbertragen. Weder Fachmann noch auf normaler Ebene. Statistik ebenfalls negativ.
                      Hat noch jemand das gleiche Problem?
                      Nach Neustart der Heizung werden die Werte einmalig hochgeladen, aber nicht mehr aktualisiert. Wat is denn da bloß los bei denen đŸ«Ł

                      GrĂŒĂŸe
                      Tom

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      263

                      Online

                      32.9k

                      Benutzer

                      83.2k

                      Themen

                      1.3m

                      BeitrÀge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2026
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

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