Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. [gelöst] Fehler bei Verwendung des 'net' Modules

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.5k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    663

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

[gelöst] Fehler bei Verwendung des 'net' Modules

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 385 Aufrufe 1 Beobachtet
  • Ä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.
  • P Offline
    P Offline
    paulinchen
    schrieb am zuletzt editiert von paulinchen
    #1

    Hallo,
    ich möchte in einem JS ein paar TCP-Daten an einen Server schicken.
    Dazu wollte ich das 'net' Modul von node.js verwenden.

    Also habe ich in den Instanzeinstellungen des JavaScript-Adapters unter "Additional npm modules" das Modul "net" eingetragen.
    Das Log brachte keine Fehler:

    javascript.0 2025-03-11 12:04:43.952	debug	Installed custom library: "net@latest"
    javascript.0 2025-03-11 12:04:37.797	debug	Found custom library in config: "net@latest"
    javascript.0 2025-03-11 12:04:37.675	debug	Installed custom library: "axios@latest"
    javascript.0 2025-03-11 12:04:31.536	debug	Found custom library in config: "axios@latest"
    javascript.0 2025-03-11 12:04:31.487	debug	Installed custom library: "mail-listener4@latest"
    javascript.0 2025-03-11 12:04:24.925	debug	Found custom library in config: "mail-listener4@latest"
    javascript.0 2025-03-11 12:04:24.923	debug	Found installed libraries: ["axios","mail-listener4"]
    javascript.0 2025-03-11 12:04:24.897	debug	Custom libraries in config: "mail-listener4 axios net": ["mail-listener4","axios","net"]
    

    Unter Putty sieht es so aus:

    pi@raspi4:~ $ node -v
    v20.18.3
    pi@raspi4:~ $ nodejs -v
    v20.18.3
    pi@raspi4:~ $ npm -v
    10.8.2
    pi@raspi4:~ $ cd /opt/iobroker
    pi@raspi4:/opt/iobroker $ npm ls --depth 0
    iobroker.inst@3.0.0 /opt/iobroker
    ├── @iobroker-javascript.0/axios@npm:axios@1.8.2
    ├── @iobroker-javascript.0/mail-listener4@npm:mail-listener4@1.1.3
    ├── @iobroker-javascript.0/net@npm:net@1.0.2
    ├── iobroker.adguard@1.0.1
    ├── iobroker.admin@7.5.2
    ├── iobroker.alexa2@3.26.7
    ├── iobroker.backitup@3.1.0
    ├── iobroker.daswetter@3.2.3
    ├── iobroker.email@1.3.1
    ├── iobroker.ical@1.16.1
    ├── iobroker.javascript@8.9.1
    ├── iobroker.js-controller@7.0.6
    ├── iobroker.mqtt@6.1.2
    ├── iobroker.ping@1.7.9
    ├── iobroker.pvforecast@4.1.0
    ├── iobroker.samsung@0.6.1
    ├── iobroker.simple-api@2.8.0
    ├── iobroker.sonoff@3.2.1
    ├── iobroker.tr-064@4.3.0
    ├── iobroker.tuya@3.17.0
    └── iobroker.zigbee@1.10.14
    

    Was mich allerdings gewundert hat:
    Unter "/opt/iobroker/node_modules" ist 'net' nicht zu finden? Ich dachte, dies wäre Bestandteil von node.js?

    Mein JS sieht so aus:

    var net = require('net');  // Node.js Modul für TCP-Verbindungen
    
    /**
     * Sendet HEX-Daten an eine angegebene IP-Adresse und Port.
     * @param {string} ipAddress - Die Ziel-IP-Adresse.
     * @param {number} port - Der Ziel-Port.
     * @param {string} hexData - Die HEX-Daten, die gesendet werden sollen.
     */
    function sendHexData(ipAddress, port, hexData) {
        // Umwandlung der HEX-Daten in ein Buffer-Objekt
        const bufferData = Buffer.from(hexData, 'hex');
    
        // Verwendung von net.connect() anstelle von new net.Socket()
        const client = net.connect(port, ipAddress, function() {
            console.log('Verbunden mit: ${ipAddress}:${port}');
            
            // Senden der HEX-Daten an den Server
            client.write(bufferData, function() {
                console.log('Daten gesendet: ${hexData}');
            });
        });
    
        // Ereignisbehandlung bei Empfang von Daten vom Server
        client.on('data', function(data) {
            console.log('Daten empfangen: ' + data.toString());
        });
    
        // Ereignisbehandlung bei Verbindungsfehler
        client.on('error', function(err) {
            console.error('Verbindungsfehler: ' + err.message);
        });
    
        // Ereignisbehandlung bei Verbindungsende
        client.on('close', function() {
            console.log('Verbindung geschlossen');
        });
    }
    
    // Beispielaufruf der Funktion mit dynamischen Parametern
    const ipAddress = '192.168.1.243';  // Ziel-IP-Adresse
    const port = 8899;  // Zielport
    const hexData = '553361390201020A93A2AAAA';
    
    // Funktion mit den obigen Parametern aufrufen
    sendHexData(ipAddress, port, hexData);
    

    Es erzeugt allerdings den Fehler:

    TypeError: net.connect is not a function
    

    Eine 2. Version des Scriptes:

    var net = require('net');  // Node.js Modul für TCP-Verbindungen
    
    /**
     * Sendet HEX-Daten an eine angegebene IP-Adresse und Port.
     * @param {string} ipAddress - Die Ziel-IP-Adresse.
     * @param {number} port - Der Ziel-Port.
     * @param {string} hexData - Die HEX-Daten, die gesendet werden sollen.
     */
    function sendHexData(ipAddress, port, hexData) {
        // Umwandlung der HEX-Daten in ein Buffer-Objekt
        const bufferData = Buffer.from(hexData, 'hex');
    
        // Erstellung des TCP-Clients
        const client = new net.Socket();
    
        // Verbindung mit dem Ziel-Server
        client.connect(port, ipAddress, function() {
            console.log('Verbunden mit: ${ipAddress}:${port}');
            
            // Senden der HEX-Daten an den Server
            client.write(bufferData, function() {
                console.log('Daten gesendet: ${hexData}');
            });
        });
    
        // Ereignisbehandlung bei Empfang von Daten vom Server
        client.on('data', function(data) {
            console.log('Daten empfangen: ' + data.toString());
        });
    
        // Ereignisbehandlung bei Verbindungsfehler
        client.on('error', function(err) {
            console.error('Verbindungsfehler: ' + err.message);
        });
    
        // Ereignisbehandlung bei Verbindungsende
        client.on('close', function() {
            console.log('Verbindung geschlossen');
        });
    }
    
    // Beispielaufruf der Funktion mit dynamischen Parametern
    const ipAddress = '192.168.1.243';  // Ziel-IP-Adresse
    const port = 8899;  // Zielport
    const hexData = '553361390201020A93A2AAAA';  //HEX-Daten
    
    // Funktion mit den obigen Parametern aufrufen
    sendHexData(ipAddress, port, hexData);
    

    Dieses Script bringt den Fehler:

    TypeError: net.Socket is not a constructor
    

    Hätte bitte jemand einen Tipp für mich, wo der Fehler liegt?
    Vielen Dank.

    T 1 Antwort Letzte Antwort
    0
    • P paulinchen

      Hallo,
      ich möchte in einem JS ein paar TCP-Daten an einen Server schicken.
      Dazu wollte ich das 'net' Modul von node.js verwenden.

      Also habe ich in den Instanzeinstellungen des JavaScript-Adapters unter "Additional npm modules" das Modul "net" eingetragen.
      Das Log brachte keine Fehler:

      javascript.0 2025-03-11 12:04:43.952	debug	Installed custom library: "net@latest"
      javascript.0 2025-03-11 12:04:37.797	debug	Found custom library in config: "net@latest"
      javascript.0 2025-03-11 12:04:37.675	debug	Installed custom library: "axios@latest"
      javascript.0 2025-03-11 12:04:31.536	debug	Found custom library in config: "axios@latest"
      javascript.0 2025-03-11 12:04:31.487	debug	Installed custom library: "mail-listener4@latest"
      javascript.0 2025-03-11 12:04:24.925	debug	Found custom library in config: "mail-listener4@latest"
      javascript.0 2025-03-11 12:04:24.923	debug	Found installed libraries: ["axios","mail-listener4"]
      javascript.0 2025-03-11 12:04:24.897	debug	Custom libraries in config: "mail-listener4 axios net": ["mail-listener4","axios","net"]
      

      Unter Putty sieht es so aus:

      pi@raspi4:~ $ node -v
      v20.18.3
      pi@raspi4:~ $ nodejs -v
      v20.18.3
      pi@raspi4:~ $ npm -v
      10.8.2
      pi@raspi4:~ $ cd /opt/iobroker
      pi@raspi4:/opt/iobroker $ npm ls --depth 0
      iobroker.inst@3.0.0 /opt/iobroker
      ├── @iobroker-javascript.0/axios@npm:axios@1.8.2
      ├── @iobroker-javascript.0/mail-listener4@npm:mail-listener4@1.1.3
      ├── @iobroker-javascript.0/net@npm:net@1.0.2
      ├── iobroker.adguard@1.0.1
      ├── iobroker.admin@7.5.2
      ├── iobroker.alexa2@3.26.7
      ├── iobroker.backitup@3.1.0
      ├── iobroker.daswetter@3.2.3
      ├── iobroker.email@1.3.1
      ├── iobroker.ical@1.16.1
      ├── iobroker.javascript@8.9.1
      ├── iobroker.js-controller@7.0.6
      ├── iobroker.mqtt@6.1.2
      ├── iobroker.ping@1.7.9
      ├── iobroker.pvforecast@4.1.0
      ├── iobroker.samsung@0.6.1
      ├── iobroker.simple-api@2.8.0
      ├── iobroker.sonoff@3.2.1
      ├── iobroker.tr-064@4.3.0
      ├── iobroker.tuya@3.17.0
      └── iobroker.zigbee@1.10.14
      

      Was mich allerdings gewundert hat:
      Unter "/opt/iobroker/node_modules" ist 'net' nicht zu finden? Ich dachte, dies wäre Bestandteil von node.js?

      Mein JS sieht so aus:

      var net = require('net');  // Node.js Modul für TCP-Verbindungen
      
      /**
       * Sendet HEX-Daten an eine angegebene IP-Adresse und Port.
       * @param {string} ipAddress - Die Ziel-IP-Adresse.
       * @param {number} port - Der Ziel-Port.
       * @param {string} hexData - Die HEX-Daten, die gesendet werden sollen.
       */
      function sendHexData(ipAddress, port, hexData) {
          // Umwandlung der HEX-Daten in ein Buffer-Objekt
          const bufferData = Buffer.from(hexData, 'hex');
      
          // Verwendung von net.connect() anstelle von new net.Socket()
          const client = net.connect(port, ipAddress, function() {
              console.log('Verbunden mit: ${ipAddress}:${port}');
              
              // Senden der HEX-Daten an den Server
              client.write(bufferData, function() {
                  console.log('Daten gesendet: ${hexData}');
              });
          });
      
          // Ereignisbehandlung bei Empfang von Daten vom Server
          client.on('data', function(data) {
              console.log('Daten empfangen: ' + data.toString());
          });
      
          // Ereignisbehandlung bei Verbindungsfehler
          client.on('error', function(err) {
              console.error('Verbindungsfehler: ' + err.message);
          });
      
          // Ereignisbehandlung bei Verbindungsende
          client.on('close', function() {
              console.log('Verbindung geschlossen');
          });
      }
      
      // Beispielaufruf der Funktion mit dynamischen Parametern
      const ipAddress = '192.168.1.243';  // Ziel-IP-Adresse
      const port = 8899;  // Zielport
      const hexData = '553361390201020A93A2AAAA';
      
      // Funktion mit den obigen Parametern aufrufen
      sendHexData(ipAddress, port, hexData);
      

      Es erzeugt allerdings den Fehler:

      TypeError: net.connect is not a function
      

      Eine 2. Version des Scriptes:

      var net = require('net');  // Node.js Modul für TCP-Verbindungen
      
      /**
       * Sendet HEX-Daten an eine angegebene IP-Adresse und Port.
       * @param {string} ipAddress - Die Ziel-IP-Adresse.
       * @param {number} port - Der Ziel-Port.
       * @param {string} hexData - Die HEX-Daten, die gesendet werden sollen.
       */
      function sendHexData(ipAddress, port, hexData) {
          // Umwandlung der HEX-Daten in ein Buffer-Objekt
          const bufferData = Buffer.from(hexData, 'hex');
      
          // Erstellung des TCP-Clients
          const client = new net.Socket();
      
          // Verbindung mit dem Ziel-Server
          client.connect(port, ipAddress, function() {
              console.log('Verbunden mit: ${ipAddress}:${port}');
              
              // Senden der HEX-Daten an den Server
              client.write(bufferData, function() {
                  console.log('Daten gesendet: ${hexData}');
              });
          });
      
          // Ereignisbehandlung bei Empfang von Daten vom Server
          client.on('data', function(data) {
              console.log('Daten empfangen: ' + data.toString());
          });
      
          // Ereignisbehandlung bei Verbindungsfehler
          client.on('error', function(err) {
              console.error('Verbindungsfehler: ' + err.message);
          });
      
          // Ereignisbehandlung bei Verbindungsende
          client.on('close', function() {
              console.log('Verbindung geschlossen');
          });
      }
      
      // Beispielaufruf der Funktion mit dynamischen Parametern
      const ipAddress = '192.168.1.243';  // Ziel-IP-Adresse
      const port = 8899;  // Zielport
      const hexData = '553361390201020A93A2AAAA';  //HEX-Daten
      
      // Funktion mit den obigen Parametern aufrufen
      sendHexData(ipAddress, port, hexData);
      

      Dieses Script bringt den Fehler:

      TypeError: net.Socket is not a constructor
      

      Hätte bitte jemand einen Tipp für mich, wo der Fehler liegt?
      Vielen Dank.

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von
      #2

      @paulinchen

      Keine Ahnung ob ich da recht habe, aber in der doku steht das so: const net = require('node:net');

      https://nodejs.org/api/net.html#net

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      P 1 Antwort Letzte Antwort
      0
      • T ticaki

        @paulinchen

        Keine Ahnung ob ich da recht habe, aber in der doku steht das so: const net = require('node:net');

        https://nodejs.org/api/net.html#net

        P Offline
        P Offline
        paulinchen
        schrieb am zuletzt editiert von
        #3

        @ticaki
        Danke für den Tipp, aber die Fehlermeldungen bleiben leider gleich?

        Noch ein Nachtrag:
        Die Dateien von 'net' sehe ich hier, aber soll das alles sein?

        pi@raspi4:/opt/iobroker/node_modules/@iobroker-javascript.0/net $ ls
        index.js  LICENSE  package.json  README.md  test.js
        pi@raspi4:/opt/iobroker/node_modules/@iobroker-javascript.0/net $
        
        
        OliverIOO 1 Antwort Letzte Antwort
        0
        • P paulinchen

          @ticaki
          Danke für den Tipp, aber die Fehlermeldungen bleiben leider gleich?

          Noch ein Nachtrag:
          Die Dateien von 'net' sehe ich hier, aber soll das alles sein?

          pi@raspi4:/opt/iobroker/node_modules/@iobroker-javascript.0/net $ ls
          index.js  LICENSE  package.json  README.md  test.js
          pi@raspi4:/opt/iobroker/node_modules/@iobroker-javascript.0/net $
          
          
          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #4

          @paulinchen

          Wenn du net in der config einträgst
          Dann entspricht das dem Befehl npm install net

          Dadurch installierst du die folgende Bibliothek
          https://www.npmjs.com/package/net

          Notiere den Import so wie gerade besprochen
          Und entferne net wieder aus der config

          node:net ist fest in Node eingebaut

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

          P 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @paulinchen

            Wenn du net in der config einträgst
            Dann entspricht das dem Befehl npm install net

            Dadurch installierst du die folgende Bibliothek
            https://www.npmjs.com/package/net

            Notiere den Import so wie gerade besprochen
            Und entferne net wieder aus der config

            node:net ist fest in Node eingebaut

            P Offline
            P Offline
            paulinchen
            schrieb am zuletzt editiert von
            #5

            @oliverio
            Vielen Dank für Deine Erklärung.

            Jetzt funktionieren beide Versionen des Scripts! Vielen Dank.

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            370

            Online

            32.9k

            Benutzer

            82.9k

            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