Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Js wie in "Puffer" schreiben

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Js wie in "Puffer" schreiben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
36 Beiträge 4 Kommentatoren 1.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    sveni_lee
    schrieb am zuletzt editiert von
    #4

    @paul53:

    HEX: 0a = LF(line feed)

    ASCII: "\n" (new line) `

    Ich verste nicht so ganz was du mir damit sagen möchtest… ??? :?:

    @Jey Cee:

    Du musst mit Streams Arbeiten. Schau dir mal "pipe" an. Damit geht sowas. `

    Ich hab mir mal einiges bei stackoverflow durgelesen aber so richtig schlau werde ich daraus noch nicht…

    const bl = require('bl')
    , fs = require('fs')
    
    fs.createReadStream('README.md')   
       .pipe(bl(function (err, data) { //  note 'new' isn't strictly required
          // `data` is a complete Buffer object containing the full data
          console.log(data.toString())   
    }))
    
    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #5

      @sveni_lee:

      Ich verste nicht so ganz was du mir damit sagen möchtest… ??? `
      https://www.torsten-horn.de/techdocs/ascii.htm.

      "." (Punkt) hat den hexadezimalen Wert 0x2e.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        sveni_lee
        schrieb am zuletzt editiert von
        #6

        jetzt verste ich was du meinst,

        0a am ende steht für LF(line feed) und nicht für den Punkt… okay verstanden.

        mein Problem ist das ein Antwort in mehreren Paketen gesendet wird und das ende immer "0A"...

        Ich möchte nun die Pakete "zusammensetzen" im Moment werden sie leider als einzelne Teile verarbeitet...

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #7

          Wenn es Strings sind, kann man diese einfach verketten (anhängen). Ob das LF enthalten ist, kann man testen.

          if(str.indexOf('\n') != -1) { // LF ist enthalten
             ...
          }
          

          Das sollte Dir die ASCII-Anmerkung sagen.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            sveni_lee
            schrieb am zuletzt editiert von
            #8

            okay, aber dann müsste ich doch die strings so lange in einen Puffer schreiben bis ein LF zeichen kommt, richtig?

            oder verstehe ich an der stelle etwas falsch?

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #9

              @sveni_lee:

              okay, aber dann müsste ich doch die strings so lange in einen Puffer schreiben bis ein LF zeichen kommt, richtig? `
              So würde ich es versuchen.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                sveni_lee
                schrieb am zuletzt editiert von
                #10

                und dann kommen wir zu meiner ursprünlichen Frage…

                wie kann ich in einen Puffer schreiben?

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #11

                  Wenn es sich tatsächlich um Strings handelt, dann ist der Puffer ein String, der als Leerstring initialisiert wird, und an den man die Stringbruchstücke solange anhängt, bis ein LF enthalten ist. Der Hex-Dump zeigt allerdings etliche Steuerzeichen innerhalb der Daten.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    sveni_lee
                    schrieb am zuletzt editiert von
                    #12

                    die Antworten die ich erwarte sehen dann so aus…

                    NRI<response status="ok"><device id="TX-NR525"><brand>ONKYO</brand><category>AV Receiver</category><year>2013</year><model>TX-NR525</model><destination>xx</destination><firmwareversion>1060-9110-0000-</firmwareversion></device></response>
                    
                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #13

                      @sveni_lee:

                      die Antworten die ich erwarte sehen dann so aus… `
                      Das ist unvollständiger XML-Code.

                      NRI
                       <response status="ok"><device id="TX-NR525"><brand>ONKYO</brand>
                      		<category>AV Receiver</category>
                      		<year>2013</year>
                      		<model>TX-NR525</model>
                      		<destination>xx</destination>
                      		<firmwareversion>1060-9110-0000-</firmwareversion></device></response> 
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        sveni_lee
                        schrieb am zuletzt editiert von
                        #14

                        richtig… das Problem ist das der xml code in teilen gesendet wird und nicht vollständig übergeben wird...

                        ~~![](</s><URL url=)https://i.imgur.com/LFkxKiN.jpg" />

                        ~~![](</s><URL url=)https://i.imgur.com/qLyVEPv.jpg" />

                        der komplette xml-code setzt sich den Paketen 920,921,922,923 und 924 zusammen…

                        darum möchte ich die enzelnen Teile wieder zusammensetzen um den kompletten und brauchbaren xml code zu bekommen...~~~~

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #15

                          Das Packet 920 enthält einen Header, der mit "!1NRI" endet. Haben die anderen Packete auch diesen Header ? Der müsste dann erst ausgefiltert werden, bevor man die XML-Teile verkettet.

                          Wie sieht das letzte Packet aus ?

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            sveni_lee
                            schrieb am zuletzt editiert von
                            #16

                            nein, die anderen haben diesen header nicht… der isr aber wichtig für die weiterverarbeitung müsste also am Anfang des Paketes bestehen bleiben...

                            ~~![](</s><URL url=)https://i.imgur.com/sTO0PT2.jpg" />

                            ~~![](</s><URL url=)https://i.imgur.com/jryLouz.jpg" />

                            ~~![](</s><URL url=)https://i.imgur.com/E80eKKM.jpg" />

                            ![](</s><URL url=)https://i.imgur.com/YKPAKSY.jpg" />~~~~~~

                            1 Antwort Letzte Antwort
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #17

                              Sind das keine Header bis zum Byte 0x41 : "|" (senkrechter Strich) ? Müssten die nicht rausgefiltert werden ?

                              Wo erscheint das LF ?

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                sveni_lee
                                schrieb am zuletzt editiert von
                                #18

                                das ist richtig…

                                ~~![](</s><URL url=)https://i.imgur.com/SaV0DU6.jpg" />

                                Wireshark sagt mir das der "Datenteil" immer erst mit byte 66 startet…

                                ![](</s><URL url=)https://i.imgur.com/wzzsRhF.jpg" />~~

                                1 Antwort Letzte Antwort
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #19

                                  Werden die ersten 66 Zeichen auch an die Funktion übergeben ?

                                  on('data', function (data) {
                                  

                                  Oder sind sie an der Stelle schon ausgefiltert ?

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  1 Antwort Letzte Antwort
                                  0
                                  • AlCalzoneA Offline
                                    AlCalzoneA Offline
                                    AlCalzone
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #20

                                    Ich gehe nicht davon aus, dass du die TCP-Header ebenfalls empfängst. Wireshark zeigt dir das gesamte Datenpaket an, das übers Netzwerk geht, Anwendungen sehen i.d.R. nur den Inhalt des TCP-Pakets (in deinem Fall vermutlich ab Byte 66).

                                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      sveni_lee
                                      schrieb am zuletzt editiert von
                                      #21

                                      die sind an der stelle schon ausgefiltert…

                                      die werden hier ausgefiltert:

                                      function eiscp_packet_extract(packet) {
                                          /*
                                            Exracts message from eISCP packet
                                            Strip first 18 bytes and last 3 since that's only the header and end characters
                                          */
                                          return packet.toString('ascii', 18, packet.length - 3);
                                      
                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        sveni_lee
                                        schrieb am zuletzt editiert von
                                        #22

                                        @AlCalzone:

                                        Ich gehe nicht davon aus, dass du die TCP-Header ebenfalls empfängst. Wireshark zeigt dir das gesamte Datenpaket an, das übers Netzwerk geht, Anwendungen sehen i.d.R. nur den Inhalt des TCP-Pakets (in deinem Fall vermutlich ab Byte 66). `

                                        dann sind das also nur die 18 bytes die noch ausgfiltert werden

                                        1 Antwort Letzte Antwort
                                        0
                                        • paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #23

                                          Wo hast Du diesen Code her ? Ich verstehe ihn nicht :oops:

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          369

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe