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 577 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

    @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

                      797

                      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