Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript… und mühsam ernährt sich das Eichhörnchen!

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

JavaScript… und mühsam ernährt sich das Eichhörnchen!

Scheduled Pinned Locked Moved Skripten / Logik
30 Posts 5 Posters 3.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • wendy2702W Offline
    wendy2702W Offline
    wendy2702
    wrote on last edited by
    #21

    Also vorausgesetzt die Antwort der WP ist immer 253 Zeichen lang kommt es jetzt so im Datenpunkt an:

    999_waterkotte_daten_komplett.jpg

    Kannst du das so mit deinem Script weiterverarbeiten oder musst du die Leerzeichen haben?

    Bitte keine Fragen per PN, die gehören ins Forum!

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    1 Reply Last reply
    0
    • P Offline
      P Offline
      pafra
      wrote on last edited by
      #22

      Hi Mirko,

      nein, ich brauche jetzt keine Leerzeichen mehr.

      Das habe ich gelöst.

      Hast Du die Antwort jetzt generell auf 253 Zeichen begrenzt?

      Die ist nämlich variabel und kann mehr oder weniger Zeichen haben.

      Eine "0x10" wird nämlich verdoppelt.

      Aber lass uns das mal einfach testen.

      Kannst Du mir das Script vielleicht erst mal per PN schicken?

      Ich würde es dann ausprobieren, ob mein Auswertescript damit klar kommt.

      Wenn ja, dann schick ich Dir das Auswertescript und wir können beide mal ausführlich testen und ggf. Fehler ausmerzen.

      Gruß

      Franz

      1 Reply Last reply
      0
      • P Offline
        P Offline
        Pman
        wrote on last edited by
        #23

        Du setzt den State jedes mal neu, wenn Teile (on "data") der Übertragung eintreffen, du hast am Ende also auch nur den letzten Teil der Übertragung drin. Daher solltest du warten bis die WP die Übertragung abgeschlossen hat, das wird meist durch eine ganz bestimmte Bit-Folge signalisiert.

        Diese Arbeit sollte eigentlich der Parser von serial-port übernehmen, du sagst ihm was dein Übertragungsende-Zeichen ist und er sammelt die Daten bis zu diesem Zeichen und übergibt der dir dann alles auf einmal.

        EDIT:

        Achja, der ByteLength-parser macht genau das, wonach er sich anhört, er gibt alle x Bytes etwas aus. Das ist nur sinnvoll, wenn vorher schon klar ist, welche länge die Übertragung hat.

        1 Reply Last reply
        0
        • wendy2702W Offline
          wendy2702W Offline
          wendy2702
          wrote on last edited by
          #24

          Hallo Pman,

          liege ich denn da mit dem "Readline" Parser richtig?

          Dem kann ich ja eine Delimiter mitgeben.

          Jetzt habe ich nur das Problem das die ersten bytes am Anfang und am Ende immer FF sind, kann ich also so nicht verwenden.

          Das Ende ist allerdings, danke an Franz, immer so:

          10 03 xx xx FF (xx = CRC)
          

          Versuche das jetzt einzubauen, wobei ich noch nicht weiß wie ich das mit der CRC Summe mache. Gibt es für den Delimiter einen "Platzhalter" ?

          Bedeutet ich setzte den Delimiter z.B.: ({ delimiter: '1003%%%%FF' }));

          Das Prozent ist nur ein Beispiel da ich den Platzhalter nicht kenne und noch nicht weiß ob es den gibt.

          Danke für deine Denkanstöße

          Mirko

          Bitte keine Fragen per PN, die gehören ins Forum!

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Pman
            wrote on last edited by
            #25

            Ich bin auch kein Experte für das Serialport-Modul, aber ich denke da ist der RegexParser das richtige:

            https://node-serialport.github.io/node- … arser.html

            vielleicht mit:

            { regex: /\x10\x30..\xFF/ }
            

            Irgendwas sagt mir aber, dass du auch auf das Encoding aufpassen musst, ich weiß nicht ob das Modul standardmäßig die Daten als utf-8 oder ascii interpretiert.

            Du kannst natürlich auch ohne Parser arbeiten und mit "on('data')" selber die Daten sammeln, bis die gewünschte Sequenz ankommt.

            1 Reply Last reply
            0
            • wendy2702W Offline
              wendy2702W Offline
              wendy2702
              wrote on last edited by
              #26

              Hi Pman,

              mit dem Regex muss ich mal schauen. Auf die schnelle eingebaut bringt es mir keine Ausgabe.

              Aber das mit dem "on.('data')… ist es nicht das was wir hier benutzen:

              port.on('data', function (data) {
              

              Mirko

              Bitte keine Fragen per PN, die gehören ins Forum!

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              1 Reply Last reply
              0
              • P Offline
                P Offline
                Pman
                wrote on last edited by
                #27

                @wendy2702:

                Aber das mit dem "on.('data')… ist es nicht das was wir hier benutzen:

                port.on('data', function (data) {
                ```` `  
                

                Ja korrekt, du musst dann nur erstmal selber die Daten sammeln, bevor du sie in den State schreibst, dann hast du praktisch einen eigenen Parser gebaut.

                1 Reply Last reply
                0
                • wendy2702W Offline
                  wendy2702W Offline
                  wendy2702
                  wrote on last edited by
                  #28

                  Das hat leider nicht funktioniert ohne den Bytelength parser.

                  Da wurde ja der lange String immer in mehrere Zeilen aufgeteilt.

                  Wie man erst alle Daten sammelt ohne einen anderen Parser habe ich noch nicht herausgefunden.

                  Bitte keine Fragen per PN, die gehören ins Forum!

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  I 1 Reply Last reply
                  0
                  • wendy2702W wendy2702

                    Das hat leider nicht funktioniert ohne den Bytelength parser.

                    Da wurde ja der lange String immer in mehrere Zeilen aufgeteilt.

                    Wie man erst alle Daten sammelt ohne einen anderen Parser habe ich noch nicht herausgefunden.

                    I Offline
                    I Offline
                    ioStarter
                    wrote on last edited by
                    #29

                    @wendy2702
                    Hi,
                    dieses Thema ist ja nun schon etwas älter. Gibt es denn hier letztendlich einen Erfolg und die Daten lassen sich auslesen?
                    Viele Grüße
                    Thomas

                    wendy2702W 1 Reply Last reply
                    0
                    • I ioStarter

                      @wendy2702
                      Hi,
                      dieses Thema ist ja nun schon etwas älter. Gibt es denn hier letztendlich einen Erfolg und die Daten lassen sich auslesen?
                      Viele Grüße
                      Thomas

                      wendy2702W Offline
                      wendy2702W Offline
                      wendy2702
                      wrote on last edited by
                      #30

                      @ioStarter

                      Ja. Auslesen geht. Irgendwo im Forum ist das Script dazu.

                      Kann ich nur am Handy gerade schlecht finden.

                      Bitte keine Fragen per PN, die gehören ins Forum!

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      569

                      Online

                      32.6k

                      Users

                      82.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe