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 584 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 Offline
    B Offline
    BeneJan
    schrieb am zuletzt editiert von
    #2

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

    AsgothianA 1 Antwort Letzte Antwort
    0
    • 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

                            547

                            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