Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Syrlex Plus 10 connect SL - App reverse engineering

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Syrlex Plus 10 connect SL - App reverse engineering

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

      @Codierknecht

      Hi, ich frag dich hier mal, da du im Bereich Webseiten-Parsen hier schon einige gute Ideen hattest...
      Ich moechte einfach die Daten vom Syrconnect Webserver abfragen, wenn ich mir die Seite im source anschaue, finde ich auch die ganzen Werte.

      Hier mal der Source, wenn ich mich eingeloggt habe, waere super, wenn du mal da reinschauen koenntest..?
      syrconnecthtml.txt
      Wie faengt man da am besten an?

      Mit Chatgpt hab ich mal das hier erstellen lassen, da kommt was, aber nicht die Werte, die ich brauche:

      const axios = require('axios');
      
      // Syrconnect API URL and Login-Daten
      const apiUrl = 'https://syrconnect.de/Admin/ProjectManagement.aspx?p=Ok%2bhZiJWQKqtb0QzlwZoXNk502kJmLUqoWwwWyRxiVDdMzGGQi4EM35s4ZtsjTFd5ZQWoAgGXxGcVcenQYN%2fMN6BqTPqESuwzkzvH1FKuXInEFyN7J%2b1O%2b%2bm%2bNyKU%2fV74Gl2NT91XClOnOLZQLYSN4I%2byE5VFtmCZLpjnaludiU%3d'; // Beispiel-URL, API-Dokumentation prüfen
      const username = 'dddddd';
      const password = 'xxxx';
      
      // Funktion zum Abrufen von Daten
      async function fetchData() {
         try {
             // Login oder Token abrufen
             const loginResponse = await axios.post(`${apiUrl}/login`, {
                 username: username,
                 password: password
             });
      
             const token = loginResponse.data.token;
      
             // Daten mit Token abrufen
             const response = await axios.get(`${apiUrl}/data-endpoint`, {
                 headers: {
                     Authorization: `Bearer ${token}`
                 }
             });
      
             // Daten in ioBroker schreiben
             const data = response.data;
             setState('0_userdata.0.Geraete.SyrlexPlus10.data'/*data*/, JSON.stringify(data), true);
             console.log('Daten erfolgreich abgerufen:', data);
         } catch (error) {
             console.error('Fehler beim Abrufen der Daten:', error);
         }
      }
      // Daten regelmäßig abrufen
      schedule('*/5 * * * *', fetchData); // Alle 5 Minuten
      // Skript starten
      fetchData();
      
      
      

      Wenn noch irgendjemand Ideen hat...???

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Neuschwansteini last edited by Codierknecht

        @ilovegym sagte in Syrlex Plus 10 connect SL - App reverse engineering:

        Wie faengt man da am besten an?

        Vielleicht erstmal aus dem ganzen Salat heraussuchen, an welcher Stelle genau (in welchem Element) die gesuchten Werte stecken.
        Dann kann man da per RegEx was passendes stricken.
        Apropos RegEx: Ist sicher nicht meine Kernkompetenz. Ich bastel da dann immer mit einem der Online RegEx-Parser rum. Dafür braucht man in der Regel nur Ausschnitte aus dem Sourcecode.

        Edit
        Mal auf die Schnelle:
        d4dda286-37d5-4b04-897c-49625337e604-image.png
        Anführungszeichen usw. müssen wie üblich escaped werden.

        N 1 Reply Last reply Reply Quote 0
        • N
          Neuschwansteini @Codierknecht last edited by

          @codierknecht

          super, das ist doch schonmal was.. mich interessieren diese Werte:
          Screenshot 2025-01-29 at 12.35.22.png

          Mit dem Regex kann man arbeiten, und wie bekomm ich die dann in ein Objekt vom iobroker? (Parser Adapter?)
          <td><span class="valueCEL">.</span>

          Screenshot 2025-01-29 at 12.50.45.png

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Neuschwansteini last edited by Codierknecht

            @ilovegym sagte in Syrlex Plus 10 connect SL - App reverse engineering:

            Mit dem Regex kann man arbeiten,

            \>Temperatur:<\/td>\<td>\<span class="valueCEL">([0-9.]+)<\/span>

            Es reicht vielleicht aus, die > zu escapen.

            b6c57228-811d-4ce2-93aa-3f00e93b1199-image.png

            und wie bekomm ich die dann in ein Objekt vom iobroker? (Parser Adapter?)

            Ich nehme den Parser-Adapter.
            Weiß aber nicht, ob der mit Anmeldungen umgehen kann.

            Edit
            Da die Klassen eindeutig benannt sind, geht das sogar noch kürzer:

            "valueCEL">([0-9.]+)
            "valuePRS">([0-9.]+)
            
            N 1 Reply Last reply Reply Quote 0
            • N
              Neuschwansteini @Codierknecht last edited by

              @codierknecht

              Danke! damit kommt schonmal im Onlineparser ein Wert, Group 2 ist das, was ich brauche, wie setze ich das im ParserAdapter um?
              Screenshot 2025-01-29 at 13.20.57.png

              ahhh.. ich teste im Parser-Adapter.. da scheiterts an der Anmeldung.. mist..

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Neuschwansteini last edited by

                @ilovegym sagte in Syrlex Plus 10 connect SL - App reverse engineering:

                da scheiterts an der Anmeldung

                Hatte ich befürchtet.
                Wenn es da keine Möglichkeit gibt, bleibt wohl nur handgeklöppeltes JS 😞

                N 1 Reply Last reply Reply Quote 0
                • N
                  Neuschwansteini @Codierknecht last edited by

                  @codierknecht

                  hmm das wars dann fuer mich.. da scheitere ich schon am login.. ne api doku gibts nicht ..

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @Neuschwansteini last edited by

                    @ilovegym
                    Mit dem blöden Captcha wird die Sache ja auch nicht wirklich einfacher 😞

                    Aus dem Stegreif fällt mir dazu auch nicht viel ein.
                    Wenn das Session-Cookie nach dem Login aktuell bleibt, könnte man da evtl. über Umwege ran.
                    Also Login über die Webseite "mit der Hand am Arm" und dann irgendwie das Cookie weiterverwenden.
                    Aber an der Ecke bin ich dann leider auch raus ...

                    N 1 Reply Last reply Reply Quote 0
                    • N
                      Neuschwansteini @Codierknecht last edited by

                      @codierknecht

                      ja.. danke.. hmm dann wird das Projekt erstmal auf Eis gelegt.. hab schon zuviel Zeit investiert, offline gehts nicht mehr..
                      Da die App sich einmal anmeldet und dann Monatelang nicht mehr nach anmeldedaten fragt, wird es wohl schon irgenwie gehn..

                      Da brauch ich einen, der sich mit Apps auskennt.. @tombox hat da beim parcel-Adapter schon viel geleistet.. vielleicht hat er ja eine Idee..? 🙂

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        tombox @Neuschwansteini last edited by

                        @ilovegym
                        Hier die Testing Seite für ein Adapter via SYRConnect App
                        https://forum.iobroker.net/topic/79653/test-syrconnect-app-adapter

                        N 1 Reply Last reply Reply Quote 0
                        • N
                          Neuschwansteini @tombox last edited by

                          @tombox

                          1000 Dank!!!

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          742
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          4
                          15
                          595
                          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