Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. paulinchen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    P
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 15
    • Best 0
    • Groups 1

    paulinchen

    @paulinchen

    0
    Reputation
    6
    Profile views
    15
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    paulinchen Follow
    Starter

    Latest posts made by paulinchen

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

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

      Jetzt funktionieren beide Versionen des Scripts! Vielen Dank.

      posted in JavaScript
      P
      paulinchen
    • RE: [gelöst] Fehler bei Verwendung des 'net' Modules

      @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 $
      
      
      posted in JavaScript
      P
      paulinchen
    • [gelöst] Fehler bei Verwendung des 'net' Modules

      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.

      posted in JavaScript
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @thorkillar Danke. Das bedeutet, ich sollte den Alexa2-Adapter mal komplett löschen und neu installieren?

      posted in Error/Bug
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @frankyboy73
      Den DP "player - Volume" habe ich noch nie benutzt.
      Sobald im DP "speak-volume" ein anderer Wert als 0 drin ist, erzeugt jede speak-Ausgabe den Piepton. Egal, ob beim Speak-Command nur der reine Text drin steht oder die Lautstärke per "30;Text..." mit gesetzt wird.
      Man kann also keine Textausgabe mit fester Lautstärke mehr machen, ohne das der blöde Piepton kommt.

      posted in Error/Bug
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @thorkillar Also hast Du jetzt seit kurzem auch diesen Piepton?

      Wie schon gesagt, beim Dot2 ist der Ton nicht da, nur beim Dot3.

      Ich habe den Alexa2-Adapter gerade mal von V3.12.0 auf V3.11.1 zurückgesetzt, bringt aber keine Änderung.

      posted in Error/Bug
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @frankyboy73
      Ich hatte gedacht, dass sich per ssml die Lautstärke einstellen lässt:

      <speak>
          Ein Satz mit normaler Lautstärke.
          <prosody volume="loud">Ein Satz mit hoher Lautstärke.</prosody>
          <prosody volume="x-loud">Ein Satz mit ganz hoher Lautstärke.</prosody>
          <prosody volume="+6dB">Ein weiterer Satz mit 6db höherer Lautstärke.</prosody> 
          <prosody volume="+10dB">Ein weiterer Satz mit 10dB höherer Lautstärke.</prosody>
      </speak>
      

      Das ganze funktioniert auch (und ohne Piep).
      Allerdings kann auch damit die Lautstärke leider nur geringfügig angehoben werden. Ich dachte, man kann hier den Parameter bis zur maximalen Lautstärke setzen. Geht aber leider nicht?

      posted in Error/Bug
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @frankyboy73 Hallo, Danke für die Erklärung.
      Das bedeutet allerdings, dass man neuerdings keine Ausgaben mit dem Speak-Command mehr ohne diese Piepse machen kann wenn man eine feste Lautstärke vorgeben will. Schade.

      Dann werde ich wohl auf ssml umstellen müssen...

      Danke an alle.
      paulinchen

      posted in Error/Bug
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @liv-in-sky Du bist mein Held für heute!

      Wenn ich den DP speak-volume auf 0 setze und dann direkt am Gerät die Lautstärke einstelle, funktioniert der speak-Befehl ohne die Pieps.

      Aber ich dachte immer, der DP speak-volume enthält die aktuell am Gerät eingestellte Lautstärke?
      Wie kann ich denn dann im Script die aktuelle Lautstärke abfragen?

      Bisher habe ich den DP speak-volume in eine Variable ausgelesen, die Speak-Ansage gemacht (mit höherer Lautstärke) und dann den DP speak-volume wieder mit der Variablen gesetzt. Ging ja bisher auch. Jetzt bleibt der DP speak-volume bei mir aber auf 0 stehen?

      posted in Error/Bug
      P
      paulinchen
    • RE: Alexa2 - Piepton vor und hinter jedem Speak-Command?

      @liv-in-sky Das Weglassen der Lautstärkeeinstellung im Speak-Command bringt keine Besserung.
      Also auch nur mit dem reinen Text kommen die beiden Pieps.

      Beim ssml-Befehl kommt auch am Anfang ein Piep.

      Wie gesagt, auf dem Dot2 geht alles. Und auf den Dot3 ging es ja auch bis vor ein paar Tagen.

      posted in Error/Bug
      P
      paulinchen
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo