Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser

    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

    Parser

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

      @Homoran

      such mal nach den Zahlen
      234881792
      und
      234881537 bis 234881537+10

      die müssten in der url hinter dxsEntries= stehen
      oder im json als dsxId

      Öffnen der Developer Tools, dann darin den Tab mit der Netzwerkkommunikation leeren
      Dann die Seite abrufen (am besten genau die, die diese Ereignisse anzeigen)
      dann sobald angezeigt wird, dann in den Developer Tools auf stop drücken
      und dann alle dxs.json abfragen nach den obigen codes checken und das json mir dann schicken

      ich habe das im codemodul kbApp.pages.info.events gefunden (für mich zum merken)
      das zugehörige Template sieht so aus

      <fieldset>
         <table ng-if="EventCnt > 0" class="table">
            <tr>
               <th></th>
               <th translate="ID_386"></th>
               <th translate="ID_229"></th>
            </tr>
            <tr ng-repeat="Event in Events">
               <td>{{$index + 1}}</td>
               <td>{{Event.date | date:\'dd.M.yyyy H:mm\'}}</td>
               <td>{{Event.code}} ( {{Event.env}} )</td>
            </tr>
         </table>
         <table ng-if="EventCnt <= 0" class="table">
            <tr>
               <th translate="ID_387"></th>
            </tr>
         </table>
      </fieldset>
              
      

      funfact:
      im code scheint irgendwas mit spielen versteckt zu sein:
      irgendein ballspiel und danach kommt code der irgendwas im browser malt

      					Set: "The set has been won by {0}!",
      					Start: "Good luck and have fun!",
      					Over: "Over, over, the game is over...\nThe winner is {0}!",
      					Replay: "Replay"
      
      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @OliverIO last edited by

        @OliverIO sagte in Parser:

        such mal nach den Zahlen
        234881792
        und
        234881537 bis 234881537+10

        Die Seite hatte ich bereits

        {"dxsEntries":[{"dxsId":234881792,"value":1},{"dxsId":234881537,"value":[207,217,88,94,63,16,2,0]},{"dxsId":234881538,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881539,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881540,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881541,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881542,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881543,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881544,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881545,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881546,"value":[0,0,0,0,0,0,0,0]}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
        

        @OliverIO sagte in Parser:

        funfact:
        im code scheint irgendwas mit spielen versteckt zu sein:
        irgendein ballspiel und danach kommt code der irgendwas im browser malt

        Cool

        OliverIO 2 Replies Last reply Reply Quote 0
        • OliverIO
          OliverIO @Homoran last edited by

          @Homoran sagte in Parser:

          {"dxsEntries":[{"dxsId":234881792,"value":1},{"dxsId":234881537,"value":[207,217,88,94,63,16,2,0]},{"dxsId":234881538,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881539,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881540,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881541,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881542,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881543,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881544,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881545,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881546,"value":[0,0,0,0,0,0,0,0]}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}

          ah, hatte gerade meinen text noch erweitert, aber passt ich schaus mir an

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

            ok

            das bedeutet, es kommt genau ein gültiges event, plat ist für maximal 10.
            die werden auch alle nachfoilgend übertragen, aber da steht dann immer 0 drin

            {dxsId: 234881792, value: 1}
            

            die folgenden Zahlen eines Events werden wie folgt interpretiert
            wobei die Zahlen den arrayvariablen d[0] bis d[7] entsprechen.
            die doppelten << zeichen sind bit schiebeoperationen

            value: (8) [207, 217, 88, 94, 63, 16, 2, 0]
            
            date: c.unixTimeStampToDate((d[0] << 0) + (d[1] << 8) + (d[2] << 16) + (d[3] << 24)),
            code: (d[4] << 0) + (d[5] << 8),
            env: ("0000" + ((d[6] << 0) + (d[7] << 8)).toString(16)).toUpperCase().substr(this.length - 4, 4) + "h"
            

            für die funktion um den unix timestamp in eine darstellbares datum/uhrzeit umzuwandeln wird eine extra library namens momentjs verwendet. aber das lohnt sich nicht wirklich, für diesen fall kann mann hier schauen
            https://stackoverflow.com/questions/847185/convert-a-unix-timestamp-to-time-in-javascript

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

              @Homoran
              sollen wir noch weitermachen? oder hast du schon die Lust verloren.
              Das Protokoll haben wir schon mal entschlüsselt.
              Nach dem gleichen Prinzip könnte man übrigens auch noch die anderen Parameter auslesen.

              Allerdings sind wir noch nicht fertig und der nächste Schritt wäre erst einmal zu schauen, wie man separat die Daten abrufen kann,
              Dann das alles in eine Schleife reinpacken und dann die Daten nach der obigen Entschlüsselung in ein oder mehrere Datenpunkte zu schreiben.

              Da ich schon mal in eine andere Bibliothek gespickt habe, die leider in phyton geschrieben ist, dürfte das kein Problem sein.
              Allerdings wirst du das bei dir nach Anleitung als Skript verpacken und testen müssen, da ich das ja null nachstellen kann.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                @OliverIO sagte in Parser:

                oder hast du schon die Lust verloren.

                Lust ist nicht das Problem
                eher Zeit und Verständnis. Mir raucht schon der Kopf.

                @OliverIO sagte in Parser:

                erst einmal zu schauen, wie man separat die Daten abrufen kann,

                Das ist der in meinen Augen wichtigere Punkt.
                Die Seite zeigt ja einen "historischen" Vorfall an, ich bräuchte aber den aktuellen.
                In diesem Fall hatten die Stadtwerke einen Generator ins Netz gehängt, der mit 52Hz Strom lieferte.
                Die Fehlermeldung wäre also: Netzfrequenz zu hoch

                Die hätte ich gerne zur Laufzeit. Habe aber nicht im geringsten die Ahnung wo ich danach suchen muss.
                UNd provozieren kann ich so etwas nicht.

                @OliverIO sagte in Parser:

                Dann das alles in eine Schleife reinpacken und dann die Daten nach der obigen Entschlüsselung in ein oder mehrere Datenpunkte zu schreiben.
                Da ich schon mal in eine andere Bibliothek gespickt habe, die leider in phyton geschrieben ist, dürfte das kein Problem sein.

                Für dich nicht. Für mich sind das böhmische Dörfer.
                Ich liebe zwar Detektivarbeit und das Herausfinden von Möglichkeiten, das hier geht aber weit über meine Fähigkeiten hinaus

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

                  @Homoran
                  da könnte ich dir schon helfen.
                  wir machen das Schritt für Schritt
                  wir können ins skript auch erst mal testdaten reinschießen, damit ein Ergebnis kommt.

                  Damit du siehst, das da die Daten auch kommen kannst du das mal in einem Browser in den developer Tools in die Konsole kopieren:
                  Ich hab dir die Werte aus dem array schon mal eingesetzt.
                  als Ergebnis müssten genau die Werte aus deinem Screenshot rauskommen.
                  Die Uhrzeit habe allerdings nicht reingepackt

                  (63 << 0) + (16 << 8)
                  

                  und

                  ("0000"+((2 << 0) + (0 << 8)).toString(16)).toLocaleUpperCase().substr(-4,4)+'h'
                  
                  Homoran 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                    @OliverIO sagte in Parser:

                    wir machen das Schritt für Schritt

                    Das klingt gut!

                    @OliverIO sagte in Parser:

                    das mal in einem Browser in den developer Tools in die Konsole kopieren:

                    Ich wusste gar nicht, dass das auch so rum geht o.o

                    Wenn ich das richtig verstanden habe muss ich jetzt hier
                    Piko_history.png
                    am Prompt etwas reinkopieren und dann....?

                    EDIT:
                    COOOOOOL
                    Piko_Browser_console_001.png

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

                      @Homoran ja genau, jeweils eine Zeile und dann return drücken

                      so sieht das bei mir im chrome aus

                      93887033-d15e-4f65-a5b1-407ae8f8c008-image.png

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @OliverIO last edited by

                        @OliverIO sagte in Parser:

                        @Homoran ja genau, jeweils eine Zeile und dann return drücken

                        so sieht das bei mir im chrome aus

                        93887033-d15e-4f65-a5b1-407ae8f8c008-image.png

                        bei mir auch!
                        siehe edit

                        OliverIO 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @OliverIO last edited by

                          @OliverIO sagte in Parser:

                          ("0000"+((2 << 0) + (0 << 8)).toString(16)).toLocaleUpperCase().substr(-4,4)+'h'

                          ergibt 0002h, also den Hex-Wert des Errorcodes

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

                            @Homoran
                            Als nächstes sollten wir mal den Datenabruf nochmal testen.
                            Öffne nochmal die Seite genau wie oben beschrieben.

                            Dann suchst du genau den Datenabruf mit den oben genannten Codes

                            Dann machst du einmal rechte Maustaste im Network Reiter der Devtools
                            und rufst das in einem neuen Tab auf. Evtl siehst du nur eine leere Seite

                            Wenn das funktioniert, dann nochmal wiederholen, aber vorher explizit von deiner Platform abmelden.
                            Verwendest du da ein UserID/Passwort um dich auf der Oberfläche anzumelden?

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @OliverIO last edited by

                              @OliverIO sagte in Parser:

                              Öffne nochmal die Seite genau wie oben beschrieben.

                              meinst du die mit den ganzen dxsEntries?

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

                                @Homoran
                                Nein nur den einen Abruf,
                                der das Ergebnis hatte, was du im Post#29 gesendet hast

                                https://forum.iobroker.net/topic/30628/parser/29

                                Homoran 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO last edited by

                                  1afd5f05-ac07-4a72-8298-24eea03506b9-image.png

                                  in deinem screenshot oben sehe ich davon mehrere zeilen.
                                  wenn der fehlercode in der oberfläche nach angezeigt wird, dann sind dieses aufrufe auch noch da

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                                    @OliverIO sagte in Parser:

                                    Nein nur den einen Abruf,
                                    der das Ergebnis hatte, was du im Post#29 gesendet hast

                                    oops,
                                    da hatten sich unsere Posts (meiner und dein Edit) überschnitten.
                                    ich hatte den Inhalt, als ich auf einen Eintrag im Networkprotokoll geklickt hatte.

                                    Der Eintrag hieß:

                                    http://192.168.138.103/api/dxs.json?dxsEntries=234881792&dxsEntries=234881537&dxsEntries=234881538&dxsEntries=234881539&dxsEntries=234881540&dxsEntries=234881541&dxsEntries=234881542&dxsEntries=234881543&dxsEntries=234881544&dxsEntries=234881545&dxsEntries=234881546&sessionId=3341479126
                                    

                                    das Ergebnis:

                                    {"dxsEntries":[{"dxsId":234881792,"value":1},{"dxsId":234881537,"value":[207,217,88,94,63,16,2,0]},{"dxsId":234881538,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881539,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881540,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881541,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881542,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881543,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881544,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881545,"value":[0,0,0,0,0,0,0,0]},{"dxsId":234881546,"value":[0,0,0,0,0,0,0,0]}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
                                    

                                    @OliverIO sagte in Parser:

                                    Verwendest du da ein UserID/Passwort um dich auf der Oberfläche anzumelden?

                                    Ja

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

                                      @Homoran sagte in Parser:

                                      http://192.168.138.103/api/dxs.json?dxsEntries=234881792&dxsEntries=234881537&dxsEntries=234881538&dxsEntries=234881539&dxsEntries=234881540&dxsEntries=234881541&dxsEntries=234881542&dxsEntries=234881543&dxsEntries=234881544&dxsEntries=234881545&dxsEntries=234881546&sessionId=3341479126

                                      genau das kopieren
                                      dann ein neuen tab öffen
                                      die dev tools öffnen (F12)
                                      dann das in die adresszeile des browsers eintragen
                                      dann schauen, ob im networkreiter der dev tools ein fehler auftaucht

                                      dann genau das selbe am besten im inkognito modus des browser wiederholen
                                      mich interessiert, ob dann ein fehler kommt und ob wir uns um authentifizierung (anmelden) kümmern müssen.

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @OliverIO last edited by

                                        @OliverIO
                                        I'll try my very best 😉

                                        Nochmals den Link geöffnet. Network:
                                        Fehler_nein.png

                                        dann im Incognito:
                                        incognito.png

                                        In dem Reiter Console vom Incognito:
                                        Console_Incognito.png

                                        Hinweis auf die Credentials kam ja schon hier:
                                        Piko_history.png

                                        scheint sich aber nur auf die WebUI zu beziehen

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

                                          @Homoran
                                          Sieht super aus, für Json benötigen wir kein Passwort,
                                          Die Daten kommen auch so.

                                          Für heut machen wir Schluss, ich Bau dir morgen einen rudimentären skriptrahmen, der die Daten abruft und als debug ausgibt.
                                          Und dann sind wir schon recht schnell bei der Ausgabe als datenpunkt.

                                          Du musst mir mal noch erklären was die beiden Zahlen bedeuten.
                                          Eins ist der Fehler Code, aber was ist die 2. Zahl die hier 2 heißt?

                                          Weil du willst die Zahlen ja in irgendeinen Text umwandeln.
                                          Du hast da ein Verzeichnis?

                                          Homoran 1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                                            @OliverIO sagte in Parser:

                                            Für heut machen wir Schluss, ich Bau dir morgen einen rudimentären skriptrahmen, der die Daten abruft und als debug ausgibt.
                                            Und dann sind wir schon recht schnell bei der Ausgabe als datenpunkt.

                                            Klingt gut,
                                            Ab morgen muss ich aber für ein paar Tage auf Dienstreise. Mal sehen ob ich heute abend noch Zeit finde.

                                            @OliverIO sagte in Parser:

                                            was ist die 2. Zahl die hier 2 heißt?

                                            meinst du die 00002h ??
                                            ich nahm an, dass das auch ein Fehlercode in Hex sei

                                            @OliverIO sagte in Parser:

                                            Du hast da ein Verzeichnis?

                                            Ja, leider nur als Scan vom Solarteur, müsste also alle Zahlen und Beschreibungen abtippen.
                                            Ich werde das genau so machen wie bei den Betriebsstatusmeldungen (https://www.loxwiki.eu/pages/viewpage.action?pageId=28803569) und sukzessive das Übersetzungsskript erweitern.
                                            Die verlinkte Seite kannte ich damals nicht - 7 ist übrigens Isolationsmessung 😉 )

                                            EDIT: vielleicht ist das aber auch die Dauer?? Aber das ging etwa von 09:00 bis 13:00

                                            OliverIO 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            905
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            parser
                                            3
                                            108
                                            6298
                                            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