Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei der Verwendung von serialport

NEWS

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

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

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

Hilfe bei der Verwendung von serialport

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 5 Kommentatoren 580 Aufrufe 4 Watching
  • Ä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.
  • B BeneJan

    So sieht das bei den npm-Modulen aus:
    Screen.png

    AsgothianA Offline
    AsgothianA Offline
    Asgothian
    Developer
    schrieb am zuletzt editiert von
    #3

    @benejan Versuch mal so:

    const { SerialPort } = require('serialport');
    var port = new SerialPort('COM3', {
      baudRate: 9600
    });
     
    port.write('Test');
    
    

    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

    B 1 Antwort Letzte Antwort
    0
    • AsgothianA Asgothian

      @benejan Versuch mal so:

      const { SerialPort } = require('serialport');
      var port = new SerialPort('COM3', {
        baudRate: 9600
      });
       
      port.write('Test');
      
      
      B Offline
      B Offline
      BeneJan
      schrieb am zuletzt editiert von
      #4

      @asgothian Das serialport bleibt weiterhin rot unterstrichen, nur die Fehlermeldung hat sich geändert:

      javascript.0	09:31:46.062	error	script.js.common.Sensoren_allgemein.Skript_1: TypeError: "path" is not defined: undefined
      javascript.0	09:31:46.062	error	at script.js.common.Sensoren_allgemein.Skript_1:3:12
      javascript.0	09:31:46.062	error	at script.js.common.Sensoren_allgemein.Skript_1:12:3
      
      AsgothianA 1 Antwort Letzte Antwort
      0
      • B BeneJan

        @asgothian Das serialport bleibt weiterhin rot unterstrichen, nur die Fehlermeldung hat sich geändert:

        javascript.0	09:31:46.062	error	script.js.common.Sensoren_allgemein.Skript_1: TypeError: "path" is not defined: undefined
        javascript.0	09:31:46.062	error	at script.js.common.Sensoren_allgemein.Skript_1:3:12
        javascript.0	09:31:46.062	error	at script.js.common.Sensoren_allgemein.Skript_1:12:3
        
        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von
        #5

        @benejan hast du die Doku zum Serialport gelesen (die aktuelle, und nicht Beispiele zur Nutzung von vor x Jahren ?)

        da steht eindeutig:

        import { SerialPort } from 'serialport'
        
        const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
        serialport.write('ROBOT POWER ON')
        

        das import { SerialPort } from 'serialport' ist gleichzusetzen mit const { SerialPort } = require('serialport');

        A.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        bahnuhrB B 2 Antworten Letzte Antwort
        0
        • AsgothianA Asgothian

          @benejan hast du die Doku zum Serialport gelesen (die aktuelle, und nicht Beispiele zur Nutzung von vor x Jahren ?)

          da steht eindeutig:

          import { SerialPort } from 'serialport'
          
          const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
          serialport.write('ROBOT POWER ON')
          

          das import { SerialPort } from 'serialport' ist gleichzusetzen mit const { SerialPort } = require('serialport');

          A.

          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #6

          @asgothian
          etwas off topic.

          Kannst du mir mal einen link geben warum man dies nun in {} setzt.

          Hab ich in keinem meiner Scripte.


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          AsgothianA 1 Antwort Letzte Antwort
          0
          • bahnuhrB bahnuhr

            @asgothian
            etwas off topic.

            Kannst du mir mal einen link geben warum man dies nun in {} setzt.

            Hab ich in keinem meiner Scripte.

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            schrieb am zuletzt editiert von
            #7

            @bahnuhr sagte in Hilfe bei der Verwendung von serialport:

            @asgothian
            etwas off topic.

            Kannst du mir mal einen link geben warum man dies nun in {} setzt.

            Hab ich in keinem meiner Scripte.

            Das hat etwas damit zu tun was du importierst.

            Man nehme:

            ein Modul myModule welches 2 Klassen exportiert, A und B.

            Wenn du das benutzen willst kannst du das auf verschiedene Art tun:

            const module = require('myModule')
            const instance_of_a = new module.A();
            
            const classA = require('myModule').A
            const another_Instance_of_a = new classA()
            
            const {A} = require('myModule')
            const thirdinstanceofa = new A();
            
            const {A,B} = require('myModule');
            

            Insbesondere der letzte require Befehl ist dabei interessant - er gibt Dir zugriff auf beide Klassen ohne das du den Umweg über module.A und module.B machen musst.

            Ob diese Syntax also notwendig ist hängt davon ab was du per require importierst

            A.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            1 Antwort Letzte Antwort
            0
            • AsgothianA Asgothian

              @benejan hast du die Doku zum Serialport gelesen (die aktuelle, und nicht Beispiele zur Nutzung von vor x Jahren ?)

              da steht eindeutig:

              import { SerialPort } from 'serialport'
              
              const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
              serialport.write('ROBOT POWER ON')
              

              das import { SerialPort } from 'serialport' ist gleichzusetzen mit const { SerialPort } = require('serialport');

              A.

              B Offline
              B Offline
              BeneJan
              schrieb am zuletzt editiert von
              #8

              @asgothian Ja das hatte ich gelesen und auch schon ausprobiert.
              Dann ist das serialport immer noch rot unterstrichen und es wird folgende Fehlermeldung ausgegeben:

              javascript.0	16:37:39.743	error	script.js.common.Sensoren_allgemein.Skript_1 compile failed: at script.js.common.Sensoren_allgemein.Skript_1:2
              
              OliverIOO AsgothianA 3 Antworten Letzte Antwort
              0
              • B BeneJan

                @asgothian Ja das hatte ich gelesen und auch schon ausprobiert.
                Dann ist das serialport immer noch rot unterstrichen und es wird folgende Fehlermeldung ausgegeben:

                javascript.0	16:37:39.743	error	script.js.common.Sensoren_allgemein.Skript_1 compile failed: at script.js.common.Sensoren_allgemein.Skript_1:2
                
                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #9

                @benejan

                Das rot unterstrichene bedeutet, das der Editor den Typ nicht finden kann. Das ist aber nur eine Editor Geschichte und passiert immer dann wenn die Bibliothek keine typdefinitionen mitliefert.
                Wenn der Code funktioniert, kann das ignoriert werden.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • B BeneJan

                  @asgothian Ja das hatte ich gelesen und auch schon ausprobiert.
                  Dann ist das serialport immer noch rot unterstrichen und es wird folgende Fehlermeldung ausgegeben:

                  javascript.0	16:37:39.743	error	script.js.common.Sensoren_allgemein.Skript_1 compile failed: at script.js.common.Sensoren_allgemein.Skript_1:2
                  
                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  schrieb am zuletzt editiert von
                  #10

                  @benejan Du hast gelesen was ich über import und require geschrieben habe ?

                  A.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  1 Antwort Letzte Antwort
                  0
                  • B BeneJan

                    @asgothian Ja das hatte ich gelesen und auch schon ausprobiert.
                    Dann ist das serialport immer noch rot unterstrichen und es wird folgende Fehlermeldung ausgegeben:

                    javascript.0	16:37:39.743	error	script.js.common.Sensoren_allgemein.Skript_1 compile failed: at script.js.common.Sensoren_allgemein.Skript_1:2
                    
                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von OliverIO
                    #11

                    @benejan

                    Du musst dann nochmal den aktuellen Code zeigen.
                    Die Fehlermeldung bedeutet, das die Compilation, also die Übersetzung von typescript nach JavaScript nicht funktioniert.
                    Also hast Du da noch einen Syntax Fehler drin.

                    Zum selber lesen auch hier mal die Dokumentation
                    https://serialport.io/docs/api-serialport

                    Du musst allerdings, glaube ich, immer require verwenden,
                    Da der JavaScript Adapter noch commonjs ist und nicht ein richtiges Node Modul.

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    1 Antwort Letzte Antwort
                    1
                    • B Offline
                      B Offline
                      BeneJan
                      schrieb am zuletzt editiert von
                      #12

                      Ja, in die Doku habe ich geschaut, aber kann dort nichts finden, was mich weiterbringt in diesem Fall. Als Code habe ich genau das zum testen genommen, was @Asgothian vorgegeben hat:

                      import { SerialPort } from 'serialport'
                       
                      const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
                      serialport.write('ROBOT POWER ON')
                      
                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • B BeneJan

                        Ja, in die Doku habe ich geschaut, aber kann dort nichts finden, was mich weiterbringt in diesem Fall. Als Code habe ich genau das zum testen genommen, was @Asgothian vorgegeben hat:

                        import { SerialPort } from 'serialport'
                         
                        const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
                        serialport.write('ROBOT POWER ON')
                        
                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von OliverIO
                        #13

                        @benejan

                        sorry, nein, du hast nicht das selbe wie @Asgothian übernommen.
                        Selbst nachdem ich es nochmals geschrieben habe (weil ich es vermutet habe)
                        Hast du das auch nicht übernommen.

                        Das läuft ohne Fehler:

                        const { SerialPort } = require('serialport');
                        const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
                        serialport.write('ROBOT POWER ON')
                        

                        Warum machen manche einem die Hilfe so schwer in dem sie die anghebotene Hilfe nicht sorgfältig genug lesen?

                        @asgothian sagte in Hilfe bei der Verwendung von serialport:

                                                                                                                                                    import { SerialPort } from 'serialport'                                                                                                                                                                                                                                                                                                                                                         const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })                                                                                                                                                                            serialport.write('ROBOT POWER ON')                                            
                        

                        das import { SerialPort } from 'serialport' ist gleichzusetzen mit const { SerialPort } = require('serialport');

                        und

                        @oliverio sagte in Hilfe bei der Verwendung von serialport:

                        Du musst allerdings, glaube ich, immer require verwenden,
                        Da der JavaScript Adapter noch commonjs ist und nicht ein richtiges Node Modul.

                        Den konkreten Pfad musst du selbst herausfinden, da das Geräte und Hardwareabhängig ist auf deinem Rechner. /dev/example ist nur ein dummy wert

                        Ausserdem empfehle ich, die ; am Ende einer Befehlszeile immer zu setzen, da es ein paar Fälle gibt, wo javascript das Zeilenende nicht richtig interpretieren kann:
                        https://javascript.info/structure#semicolon

                        Nachtrag:
                        wei es mir erst gerade aufgefallen ist:

                        Der wahre Grund des Fehlers ist dann im iobroker log sichtbar, falls man debug level debug für den javascript adapter aktiviert hat:

                        javascript.0 2025-03-16 23:06:05.577	error	SyntaxError: Cannot use import statement outside a module
                        javascript.0 2025-03-16 23:06:05.576	error	^^^^^^
                        javascript.0 2025-03-16 23:06:05.576	error	import { SerialPort } from 'serialport'
                        javascript.0 2025-03-16 23:06:05.575	error	script.js.Skript_1 compile failed: at script.js.Skript_1:4
                        

                        wäre glaube ich auch mal etwas was man im skriptlog mit anzeigen könnte @haus-automatisierung
                        Nur die letzte Zeile im Skriptlog ist nicht immer ganz erklärend

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        haus-automatisierungH 1 Antwort Letzte Antwort
                        1
                        • OliverIOO OliverIO

                          @benejan

                          sorry, nein, du hast nicht das selbe wie @Asgothian übernommen.
                          Selbst nachdem ich es nochmals geschrieben habe (weil ich es vermutet habe)
                          Hast du das auch nicht übernommen.

                          Das läuft ohne Fehler:

                          const { SerialPort } = require('serialport');
                          const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })
                          serialport.write('ROBOT POWER ON')
                          

                          Warum machen manche einem die Hilfe so schwer in dem sie die anghebotene Hilfe nicht sorgfältig genug lesen?

                          @asgothian sagte in Hilfe bei der Verwendung von serialport:

                                                                                                                                                      import { SerialPort } from 'serialport'                                                                                                                                                                                                                                                                                                                                                         const serialport = new SerialPort({ path: '/dev/example', baudRate: 9600 })                                                                                                                                                                            serialport.write('ROBOT POWER ON')                                            
                          

                          das import { SerialPort } from 'serialport' ist gleichzusetzen mit const { SerialPort } = require('serialport');

                          und

                          @oliverio sagte in Hilfe bei der Verwendung von serialport:

                          Du musst allerdings, glaube ich, immer require verwenden,
                          Da der JavaScript Adapter noch commonjs ist und nicht ein richtiges Node Modul.

                          Den konkreten Pfad musst du selbst herausfinden, da das Geräte und Hardwareabhängig ist auf deinem Rechner. /dev/example ist nur ein dummy wert

                          Ausserdem empfehle ich, die ; am Ende einer Befehlszeile immer zu setzen, da es ein paar Fälle gibt, wo javascript das Zeilenende nicht richtig interpretieren kann:
                          https://javascript.info/structure#semicolon

                          Nachtrag:
                          wei es mir erst gerade aufgefallen ist:

                          Der wahre Grund des Fehlers ist dann im iobroker log sichtbar, falls man debug level debug für den javascript adapter aktiviert hat:

                          javascript.0 2025-03-16 23:06:05.577	error	SyntaxError: Cannot use import statement outside a module
                          javascript.0 2025-03-16 23:06:05.576	error	^^^^^^
                          javascript.0 2025-03-16 23:06:05.576	error	import { SerialPort } from 'serialport'
                          javascript.0 2025-03-16 23:06:05.575	error	script.js.Skript_1 compile failed: at script.js.Skript_1:4
                          

                          wäre glaube ich auch mal etwas was man im skriptlog mit anzeigen könnte @haus-automatisierung
                          Nur die letzte Zeile im Skriptlog ist nicht immer ganz erklärend

                          haus-automatisierungH Offline
                          haus-automatisierungH Offline
                          haus-automatisierung
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #14

                          @oliverio sagte in Hilfe bei der Verwendung von serialport:

                          Nur die letzte Zeile im Skriptlog ist nicht immer ganz erklärend

                          Ja, das Problem ist, dass das Log innerhalb der Scripts nach der Script ID sucht. Alles, wo nicht die Script ID enthalten ist, wird ausgeblendet. Dadurch fehlt meistens die (wichtige) erste Zeile des Logs und nur der Stack wird angezeigt.

                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                          📚 Meine inoffizielle ioBroker Dokumentation

                          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

                          789

                          Online

                          32.4k

                          Benutzer

                          81.6k

                          Themen

                          1.3m

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

                          • Du hast noch kein Konto? Registrieren

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