Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Einloggen auf Webseite und bedienen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Einloggen auf Webseite und bedienen

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @Int17 last edited by

      @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

      1 Reply Last reply Reply Quote 0
      • I
        Int17 last edited by

        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.

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Int17 last edited by 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 1 Reply Last reply Reply Quote 0
          • I
            Int17 @OliverIO last edited by

            @oliverio Ok, danke.

            I 1 Reply Last reply Reply Quote 0
            • I
              Int17 @Int17 last edited by 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.

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @Int17 last edited by

                @int17

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

                I 1 Reply Last reply Reply Quote 0
                • I
                  Int17 @OliverIO last edited by 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 1 Reply Last reply Reply Quote 0
                  • M
                    musicowl @Int17 last edited by

                    @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 Reply Last reply Reply Quote 0
                    • I
                      Int17 @musicowl last edited by

                      @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 Reply Last reply Reply Quote 0
                      • W
                        Wch @Int17 last edited by

                        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 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        611
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        7
                        19
                        988
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo