Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Werte aus JS auslesen und in Datenpunkte einfügen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Werte aus JS auslesen und in Datenpunkte einfügen

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fimoknete last edited by fimoknete

      Hallo alle,

      ich habe ein HTML File, das augenscheinlich von JS Werte der Batterie gefüttert bekommt.

      Die Frage ist, wie bekomme ich den Wert SOC aus dem HTML oder JS in einen Datenpunkt in IoBroker um mit dem SOC der Batterie zu arbeiten? Also wie kann ich Werte aus JS oder der HTML extrahieren?

      5f89d949-607e-4b35-b06b-e9177bb88a8d-image.png

      611452d2-ca63-41e8-8e62-58537a115d30-image.png

      e3076fba-25ba-4ea4-b144-826b74d7866d-image.png

      6a5f0a91-8e96-4e13-a89f-bfc6ecf5470e-image.png

      6adf313a-1883-4e15-9f9e-4570b2e97861-image.png

      M 1 Reply Last reply Reply Quote 0
      • M
        meloneA @fimoknete last edited by

        @fimoknete der Parser Adapter ( https://github.com/ioBroker/ioBroker.parser ) wäre dafür eine simple Lösung.

        F 1 Reply Last reply Reply Quote 0
        • F
          fimoknete @meloneA last edited by

          @melonea Könntest du mir da ein wenig unter die Arme greifen? Hab das noch nie benutzt.

          Codierknecht M 2 Replies Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @fimoknete last edited by

            @fimoknete
            Viel interessanter wäre herauszufinden, wie die Seite an die Daten kommt.
            Da wird ja vermutlich eine Art API dahinterstecken, das man per Request abfragen könnte.

            F 1 Reply Last reply Reply Quote 0
            • F
              fimoknete @Codierknecht last edited by

              @codierknecht im ersten Bild kann man sehen, dass die HTML einen progress txt aus dem Script bekommt. Keine Ahnung wie das funktioniert.
              Kann man nicht irgendwie die Variable aus dem JS von extern mit Blocky order so auslesen?
              Parser geht im iobroker nicht, GUI error.

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

                @fimoknete
                Das ist nur der Name des CSS-Klasse.
                Um was für ein Gerät handelt es sich?

                F 1 Reply Last reply Reply Quote 0
                • F
                  fimoknete @Codierknecht last edited by

                  @codierknecht LiFePo4 Batterie

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • M
                    meloneA @fimoknete last edited by

                    @fimoknete said in Werte aus JS auslesen und in Datenpunkte einfügen:

                    @melonea Könntest du mir da ein wenig unter die Arme greifen? Hab das noch nie benutzt.

                    Du installierst den Adapter, fügst die passende URL und Regex ein. Für die SOC Werte müsste folgendes funktionieren:

                    c35a2708>(.*?)%</p>

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      fimoknete @meloneA last edited by

                      @melonea Vielen Dank, werde ich mal probieren wenn der iobroker adapter parser wieder läuft. produziert nur einen gui error zur zeit. ich hoffe das wird mal gelöst.

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

                        @fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:

                        LiFePo4 Batterie

                        Na wer hätte damit gerechnet?
                        Verrätst Du uns auch den Hersteller?

                        Irgendwie muss das Ding ja auch kommunizieren.
                        Hängt da ein BMS dran, das man ggf. anzapfen könnte?
                        Wie kommen denn die HTML-Dateien auf Deinen Rechner? Vom Hersteller? Ist da JS-Code drin, der irgendwie mit der Batterie kommuniziert?
                        Dann wäre das komplette Script interessant. Aber bitte nicht als Screenshot, sondern in Code-Tags </> oder gleich das ganze Script als Datei anhängen (wenn zu lang).

                        Hat da eine Komponente eine IP, zu der man vielleicht die Kommunikation per WireShark mitschneiden kann?

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          fimoknete @Codierknecht last edited by fimoknete

                          @codierknecht Batterie mit BMS. Hat can und rs485 connectoren. Aktuell hängt es via can-bus und USB am Rechner. Das Monitoring Tool bekommt die Daten via serial schnittstelle com10. Die software wurde mitgeliefert.

                          Den Quelltext hänge ich bei Zeiten mal mit ran. Aktuell habe ich nur die Screenshots. Wenn ich wieder an der Batterie bin, extrahiere ich mal den Quelltext.

                          parser bringt mit kopierten Quelltext der html

                          1970dfa7-682e-4c74-b34e-d572f5689775-image.png

                          in IoBroker aber
                          98864c5d-7a86-4400-aeed-3886e1a9cbf0-image.png

                          Die HTML sieht so aus. "file:///C:/Program%20Files%20(x86)/Batterie2/source/dist/index.html#/"
                          17557109-9790-429a-80f3-09699a0f0cdc-image.png

                          die untersuchte quelle hat aber einen anderen text. wie komme ich an die wirkliche HTML mit dem Text?

                          01ba07cb-a4b0-4fb1-b7cf-8b4a1d040248-image.png

                          692cb67c-af5b-4514-8530-4c33996e4464-image.png

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

                            @fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:

                            Hat can und rs485 connectoren

                            Das klingt doch irgendwie vielversprechend.
                            Meine PV + Speicher kommt erst im kommenden Jahr. Darum bin da sicher nicht der richtige Ansprechpartner. Aber ich bin ziemlich zuversichtlich, dass da was geht:

                            https://www.google.com/search?q=iobroker+batterie+rs485

                            Hier wird es sicher so einige geben, die Dir da weiterhelfen können.

                            F 1 Reply Last reply Reply Quote 0
                            • F
                              fimoknete @Codierknecht last edited by fimoknete

                              @codierknecht also irgendwie verstehe ich die logik hinter dem ganzen nicht.

                              die html sieht in einem text editor so aus.

                              11f44ca9-da7d-4a88-87b1-70ca53a0285e-image.png

                              kein wunder das der parser nichts findet.

                              wo kommt denn der unterschied zu dem untersuchten quelltext der selben datei her?
                              27bb818a-e361-4a64-adaf-ccb87420ca47-image.png

                              hier kann ich noch Daten aufklappen und die Information abfischen.

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

                                @fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:

                                also irgendwie verstehe ich die logik hinter dem ganzen nicht.
                                wo kommt denn der unterschied zu dem untersuchten quelltext der selben datei her?

                                Da wird wohl das JavaScript das DOM erst zur Laufzeit verändern.
                                Wenn der Parser keine JS-Engine mitliefert, wird das nix.

                                Batterie mit BMS

                                Ich frage nochmal nach dem Hersteller. Damit hättest Du wesentlich bessere Chancen, hier Hilfe zu erhalten.

                                https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
                                Informationen nur scheibchenweise zu liefern ist nicht unbedingt hilfreich.

                                <Edit>
                                Und noch ein Tipp: Denk mal darüber nach, den Titel Deines Post zu ändern.
                                Diejenigen die sich evtl. mit der verwendeten Technik auskennen (dazu müsste man den Hersteller kennen) werden aufgrund des Titels nicht unbedingt den Weg in diesen Thread finden.
                                Ein "Batteriesystem XYZ per CAN/RS485 auslesen" wäre da z.B. etwas verständlicher.

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

                                  @fimoknete

                                  @Codierknecht hat wahrscheinlich recht. da werden zur Laufzeit Daten nachgeladen und dann direkt ins html eingetragen.

                                  Du könntest mal in die Web developer tools deines Browser gehen (F12),
                                  auf den Netzwerk-Tab, dann zur Sicherheit mit F5 die Seite neu laden, dann den Suchdialog (mit STRG+F) aufrufen und nach deinem Wert suchen. Beachte, das Fließkommazahlen in javascript mit Punkt notiert werden (also anstatt 123,456 ist das dann 123.456)
                                  Als Ergebnis erhälst du wahrscheinlich viele Fundstellen. Die musst du dann einzeln durchschauen um den eigentlichen Übertragungsort zu finden. Dann können wir weiter mit dem parser-adapter schauen.

                                  e6cb63f7-6c10-41ef-98cf-f9abe163358b-image.png

                                  Im Sceenshot habe ich das mal mit dem Forum und dem aktuellen Thread gemacht. Da werden die Daten auch per JSON übertragen und dann erst im Browser die Seite generiert.

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

                                    @oliverio danke, werde ich mal probieren. Ich kenne den Hersteller des BMS aber nicht. Die Batterie ist von Lanni. Ich finde den button nicht zum Titel ändern.

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

                                      @fimoknete sagte in Werte aus JS auslesen und in Datenpunkte einfügen:

                                      Ich kenne den Hersteller des BMS aber nicht. Die Batterie ist von Lanni

                                      Gibt's da einen Link, oder hast Du das selbst zusammengeklöppelt?

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        fimoknete @Codierknecht last edited by

                                        @codierknecht Das ist eine Rack mounted BAtterie aus China. Die kam so wie sie ist.

                                        a39690d2-c43a-433a-b777-114344a6266c-image.png

                                        Anleitung sagt zum BMS: Ich rate mal, dass es ein Daren BMS ist. Steht aber nirgends.

                                        a05220e0-2115-41be-9857-7ad954fb8be6-image.png

                                        Es gibt noch ein ModBus protokoll mit den ganze Registern. Ich weis aber nicht, wie ich das auslesen soll. Ich kapiere nicht mal den parity check in dem Manual.
                                        BMS_Protocol_ModBus_V1_0_2_beta1 (1).pdf

                                        Codierknecht Ralla66 2 Replies Last reply Reply Quote 0
                                        • Codierknecht
                                          Codierknecht Developer Most Active @fimoknete last edited by

                                          @fimoknete
                                          Na das ist zumindest schon mal etwas, mit dem vielleicht die ModBus-Experten hier etwas anfangen können.
                                          Frag' mich aber nicht, wer sich da gut auskennt - ich jedenfalls leider nicht.

                                          Vielleicht können da @apollon77, @Bluefox oder @haus-automatisierung weiterhelfen?

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

                                            @fimoknete
                                            Wo ist das Problem?

                                            Wie hast du versucht die Batterie zu verdrahten, und wie hast du den Modbusadapter konfiguriert.

                                            Dann brauchst du einen HEX->Dec Rechner und danach müsdte es laufen.

                                            immer erst mit nur einer Adresse beginnen!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            127
                                            7447
                                            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