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]seltsamer Effekt mit „client Socket“

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    8
    1
    47

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    554

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

[gelöst]seltsamer Effekt mit „client Socket“

Geplant Angeheftet Gesperrt Verschoben JavaScript
9 Beiträge 3 Kommentatoren 844 Aufrufe 3 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.
  • S Offline
    S Offline
    stoffel67
    schrieb am zuletzt editiert von stoffel67
    #1

    Hallo,
    ich habe einen seltsamen Effekt mit setInterval(...)
    ich will eine Funktion alle 10 Sekunden aufrufen. die Funktion wird aber immer "noch einmal "zusätzlich" ausgeführt, also nach 10 Sekunden 1x nach 20 Sekunden 2x nach 30 Sekunden 3x... usw.
    was ist da falsch.. anbei das Skript....

    var net = require("net");
    const crc16 = require('crc/crc16ccitt');
    
    function calc_crc (str) {
    var erg =crc16(str).toString(16).toUpperCase();
    //console.log ("CRC:"+erg)
    return erg
    }
    
    
    const host = "10.10.10.10";
    const port = 5688;
    
    var client = net.Socket();
    
    var message=""
    //var array[]
    
    function Hottoh_message(message) {
        var sendstr= "#"+message+calc_crc(message)+"\n"
        //console.log(sendstr)
        client.connect(port,host,function () {
            console.log("Connected ");
            client.write(sendstr);
         });
        client.on("data", (data) => {
            console.log(`Received: ${data}`);
            //var arr = data.toString().split(";");
            //console.log(arr.length)
            //arr.forEach((element) => {
            //    console.log(element);
            //    });
            client.end();
        });
        client.on("error", (error) => {
            console.log(`Error: ${error.message}`);
            client.destroy();
        });
        client.on("close", () => {
            console.log("Connection closed");
            client.destroy();
        });
    };
    
    
    setInterval(Hottoh_message,10000,"00000C---0002DATR0;")
    //schedule('* * * * * *',function() { Hottoh_message("00000C---0002DATR0;")});
    

    oder ist da mit net socket etwas nicht iO?

    Mein Adapter: JUNG/GIRA eNet-Adapter

    Marc BergM 1 Antwort Letzte Antwort
    0
    • S stoffel67

      Hallo,
      ich habe einen seltsamen Effekt mit setInterval(...)
      ich will eine Funktion alle 10 Sekunden aufrufen. die Funktion wird aber immer "noch einmal "zusätzlich" ausgeführt, also nach 10 Sekunden 1x nach 20 Sekunden 2x nach 30 Sekunden 3x... usw.
      was ist da falsch.. anbei das Skript....

      var net = require("net");
      const crc16 = require('crc/crc16ccitt');
      
      function calc_crc (str) {
      var erg =crc16(str).toString(16).toUpperCase();
      //console.log ("CRC:"+erg)
      return erg
      }
      
      
      const host = "10.10.10.10";
      const port = 5688;
      
      var client = net.Socket();
      
      var message=""
      //var array[]
      
      function Hottoh_message(message) {
          var sendstr= "#"+message+calc_crc(message)+"\n"
          //console.log(sendstr)
          client.connect(port,host,function () {
              console.log("Connected ");
              client.write(sendstr);
           });
          client.on("data", (data) => {
              console.log(`Received: ${data}`);
              //var arr = data.toString().split(";");
              //console.log(arr.length)
              //arr.forEach((element) => {
              //    console.log(element);
              //    });
              client.end();
          });
          client.on("error", (error) => {
              console.log(`Error: ${error.message}`);
              client.destroy();
          });
          client.on("close", () => {
              console.log("Connection closed");
              client.destroy();
          });
      };
      
      
      setInterval(Hottoh_message,10000,"00000C---0002DATR0;")
      //schedule('* * * * * *',function() { Hottoh_message("00000C---0002DATR0;")});
      

      oder ist da mit net socket etwas nicht iO?

      Marc BergM Offline
      Marc BergM Offline
      Marc Berg
      Most Active
      schrieb am zuletzt editiert von
      #2

      @stoffel67
      Ich vermute, mit jedem Aufruf der Funktion "hottoh_message" werden neue Listener zu den schon bestehenden hinzugefügt. Darum sollten die "client.on" Methoden außerhalb der Funktion definiert werden.

      NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

      Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

      Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

      B 1 Antwort Letzte Antwort
      0
      • Marc BergM Marc Berg

        @stoffel67
        Ich vermute, mit jedem Aufruf der Funktion "hottoh_message" werden neue Listener zu den schon bestehenden hinzugefügt. Darum sollten die "client.on" Methoden außerhalb der Funktion definiert werden.

        B Offline
        B Offline
        Blockmove
        schrieb am zuletzt editiert von
        #3

        @marc-berg said in seltsamer Effekt mit setInterval bzw. schedule:

        @stoffel67
        Ich vermute, mit jedem Aufruf der Funktion "hottoh_message" werden neue Listener zu den schon bestehenden hinzugefügt. Darum sollten die "client.on" Methoden außerhalb der Funktion definiert werden.

        Klingt plausibel ... Aber sollten die Listener nicht mit destroy gelöscht werden?

        The difference beetween Man and Boys:
        The price of their toys 😀

        Marc BergM 1 Antwort Letzte Antwort
        0
        • B Blockmove

          @marc-berg said in seltsamer Effekt mit setInterval bzw. schedule:

          @stoffel67
          Ich vermute, mit jedem Aufruf der Funktion "hottoh_message" werden neue Listener zu den schon bestehenden hinzugefügt. Darum sollten die "client.on" Methoden außerhalb der Funktion definiert werden.

          Klingt plausibel ... Aber sollten die Listener nicht mit destroy gelöscht werden?

          Marc BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von
          #4

          @blockmove sagte in seltsamer Effekt mit setInterval bzw. schedule:

          Aber sollten die Listener nicht mit destroy gelöscht werden?

          Werden sie doch bei den entsprechenden Ereignissen. Wobei es wohl sinnvoll ist, vorher noch die Listener zu entfernen, sonst kann es Speicherlecks geben.

          client.on("data", (data) => {
              console.log(`Received: ${data}`);
              client.end();
          });
          
          client.on("error", (error) => {
              console.log(`Error: ${error.message}`);
              client.removeAllListeners();
              client.destroy();
          });
          
          client.on("close", () => {
              console.log("Connection closed");
              client.removeAllListeners();
              client.destroy();
          });
          

          NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

          Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

          Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

          S 1 Antwort Letzte Antwort
          1
          • Marc BergM Marc Berg

            @blockmove sagte in seltsamer Effekt mit setInterval bzw. schedule:

            Aber sollten die Listener nicht mit destroy gelöscht werden?

            Werden sie doch bei den entsprechenden Ereignissen. Wobei es wohl sinnvoll ist, vorher noch die Listener zu entfernen, sonst kann es Speicherlecks geben.

            client.on("data", (data) => {
                console.log(`Received: ${data}`);
                client.end();
            });
            
            client.on("error", (error) => {
                console.log(`Error: ${error.message}`);
                client.removeAllListeners();
                client.destroy();
            });
            
            client.on("close", () => {
                console.log("Connection closed");
                client.removeAllListeners();
                client.destroy();
            });
            
            S Offline
            S Offline
            stoffel67
            schrieb am zuletzt editiert von
            #5

            @marc-berg said in seltsamer Effekt mit setInterval bzw. schedule:

            client.removeAllListeners();

            habs eingebaut... und siehe da Aufruf erfolgt jetzt nur noch einmal :+1:
            wa smeinst du mir "client on" Methode ausserhald definieren?

            Mein Adapter: JUNG/GIRA eNet-Adapter

            Marc BergM 1 Antwort Letzte Antwort
            0
            • S stoffel67

              @marc-berg said in seltsamer Effekt mit setInterval bzw. schedule:

              client.removeAllListeners();

              habs eingebaut... und siehe da Aufruf erfolgt jetzt nur noch einmal :+1:
              wa smeinst du mir "client on" Methode ausserhald definieren?

              Marc BergM Offline
              Marc BergM Offline
              Marc Berg
              Most Active
              schrieb am zuletzt editiert von
              #6

              @stoffel67 sagte in seltsamer Effekt mit setInterval bzw. schedule:

              wa smeinst du mir "client on" Methode ausserhald definieren?

              Ich glaube, die Überlegung war nicht zielführend, so wie du die Funktion aufrufst.

              NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

              Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

              Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

              S 1 Antwort Letzte Antwort
              0
              • Marc BergM Marc Berg

                @stoffel67 sagte in seltsamer Effekt mit setInterval bzw. schedule:

                wa smeinst du mir "client on" Methode ausserhald definieren?

                Ich glaube, die Überlegung war nicht zielführend, so wie du die Funktion aufrufst.

                S Offline
                S Offline
                stoffel67
                schrieb am zuletzt editiert von
                #7

                @marc-berg
                Sorry, aber ich versteh nicht was du damit meinst… „nicht zielführend“
                (bitte die Rechtschreibfehler oben zu entschuldigen)

                Mein Adapter: JUNG/GIRA eNet-Adapter

                Marc BergM 1 Antwort Letzte Antwort
                0
                • S stoffel67

                  @marc-berg
                  Sorry, aber ich versteh nicht was du damit meinst… „nicht zielführend“
                  (bitte die Rechtschreibfehler oben zu entschuldigen)

                  Marc BergM Offline
                  Marc BergM Offline
                  Marc Berg
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @stoffel67 sagte in seltsamer Effekt mit setInterval bzw. schedule:

                  aber ich versteh nicht was du damit meinst… „nicht zielführend“

                  Ich wollte damit nur sagen, dass meine Überlegung, die "client.on" Methoden aus der Hauptfunktion auszulagern, in deinem Fall wohl nicht zum Ziel geführt hätten. Aber dafür bin ich in der Programmierung nicht fit genug. Wenn das saubere Entfernen der Listener es jetzt gebracht hat, ist doch alles gut.

                  NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                  Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                  Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                  S 1 Antwort Letzte Antwort
                  0
                  • Marc BergM Marc Berg

                    @stoffel67 sagte in seltsamer Effekt mit setInterval bzw. schedule:

                    aber ich versteh nicht was du damit meinst… „nicht zielführend“

                    Ich wollte damit nur sagen, dass meine Überlegung, die "client.on" Methoden aus der Hauptfunktion auszulagern, in deinem Fall wohl nicht zum Ziel geführt hätten. Aber dafür bin ich in der Programmierung nicht fit genug. Wenn das saubere Entfernen der Listener es jetzt gebracht hat, ist doch alles gut.

                    S Offline
                    S Offline
                    stoffel67
                    schrieb am zuletzt editiert von
                    #9

                    @marc-berg
                    OK, jetzt hab ich‘s verstanden…
                    nochmals vielen Dank für den Hinweis
                    ich ändere noch den Titel, so ist er missverständlich…

                    Mein Adapter: JUNG/GIRA eNet-Adapter

                    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

                    799

                    Online

                    32.5k

                    Benutzer

                    81.8k

                    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