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. [gelöst] Fehler bei Verwendung des 'net' Modules

NEWS

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

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

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

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 317 Aufrufe 1 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.
  • 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
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            969

            Online

            32.4k

            Benutzer

            81.5k

            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