Navigation

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

    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

    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 3
    • Best 0
    • Groups 1

    Carsten Eckstein

    @Carsten Eckstein

    Starter

    0
    Reputation
    47
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Carsten Eckstein Follow
    Starter

    Latest posts made by Carsten Eckstein

    • RE: TCP-Server für Netzwerk I/O Modul

      @OliverIO mein Verständnis von Code liegt vielleicht daran, dass ich es hauptsächlich mit Industriesteuerungen (Siemens u.Ä.) zu tun habe.

      0: Ich starte den Server, weil das I/O Modul als Client fungiert und die Verbindung zum Server herstellt.

      1: Habe ich gemacht

      2: Habe ich auch gemacht

      3: Das stelle ich erstmal zurück bis ich den Rest richtig verstanden habe

      4: Das mit dem Aufräumen habe ich noch nicht im Griff. Wie kann ich zum Beispiel erreichen dass der TCP Server beendet wird wenn ich das Script anhalte?

      Meine neuste Erkenntnis: Sende ich 'AT+OCCH0=?\n' bekomme ich als Antwort 'OCCH1=0\nOCCH2=0\nOCCH3=0\nOCCH4=0\n'
      Hier nochmal mein angepasster Code:

      
      // Load the TCP Library
      var net = require('net');
      
      
      // Start a TCP Server
      var server = net.createServer(function (socket) {
      
          // Identify this client
          socket.name = socket.remoteAddress + ":" + socket.remotePort
          console.log(socket.name);
      
          socket.on('end', function () {
              server.close();
          });
      
          socket.on('data', function (data) {
              var newdata = "" + data;
              var newdatachunks = newdata.split('\n');
              for (var i = 0; i < (newdatachunks.length - 1); i++) {
                  const state = newdatachunks[i].toString().split(':');
                  // console.log(state[0] + " --- " + state[1]);
                  if (state[0] == "+OCCH1") {
                      if (getState('javascript.0.Rolladen.EgSchlafen.Fenster1geschlossen'/*Fenster1geschlossen*/).val != Boolean(toInt(state[1]))) {
                          setState('javascript.0.Rolladen.EgSchlafen.Fenster1geschlossen'/*Fenster1geschlossen*/, Boolean(toInt(state[1])));
                      }
                  }
      
                  if (state[0] == "+OCCH2") {
                      if (getState('javascript.0.Rolladen.EgSchlafen.Fenster2geschlossen'/*Fenster2geschlossen*/).val != Boolean(toInt(state[1]))) {
                          setState('javascript.0.Rolladen.EgSchlafen.Fenster2geschlossen'/*Fenster2geschlossen*/, Boolean(toInt(state[1])));
                      }
                  }
      
                  if (state[0] == "+OCCH3") {
                      if (getState('javascript.0.Rolladen.EgSchlafen.TasterAuf'/*TasterAuf*/).val != Boolean(toInt(state[1]))) {
                          setState('javascript.0.Rolladen.EgSchlafen.TasterAuf'/*TasterAuf*/, Boolean(toInt(state[1])));
                      }
                  }
      
                  if (state[0] == "+OCCH4") {
                      if (getState('javascript.0.Rolladen.EgSchlafen.TasterAb'/*TasterAb*/).val != Boolean(toInt(state[1]))) {
                          setState('javascript.0.Rolladen.EgSchlafen.TasterAb'/*TasterAb*/, Boolean(toInt(state[1])));
                      }
                  }
              }
          });
      
          function checkStatus() {
              socket.write("AT+OCCH0=?\n");
          };
      
      
          setInterval(checkStatus, 200);
      
      })
      server.listen(6000);
      
      
      console.log("Server running at port 6000\n");
      
      posted in JavaScript
      Carsten Eckstein
      Carsten Eckstein
    • RE: TCP-Server für Netzwerk I/O Modul

      Die Übersetzung ist nichtmal das größte Problem, sondern dass ich nicht weiß wie ich einen vernünftigen TCP Socket Server in Javascript realisiert bekomme.

      Kann mir das jemand helfen und über mein Script mal drüber schauen wo da die groben Patzer liegen?

      posted in JavaScript
      Carsten Eckstein
      Carsten Eckstein
    • TCP-Server für Netzwerk I/O Modul

      Hallo Leute,

      ich habe mir beim Ali dieses Netzwerk I/O Modul besorgt :
      https://de.aliexpress.com/item/32878473705.html

      Dieses Modul hat 4 Inputs und 4 Outputs und fast keine brauchbare Dokumentation.

      Bisherige Erkenntnisse:
      Es gibt eine Configsoftware ausschließlich in Chinesisch
      In der Software stelle ich die Ziel IP und Port ein
      Das Modul stellt zu dem angegebenen Server eine Verbindung her
      Es lässt sich über "AT"-Befehle steuern und der Status abfragen

      Sende ich an das Modul "AT+OCCH0=?" , kommt als Antwort die Zustände der Inputs:
      "+OCCH1:0"
      "+OCCH2:0"
      "+OCCH3:0"
      "+OCCH4:0"

      Analog dazu lässt sich mit "AT+STACH0=?" der Relais abfragen.

      Mit dem Befehl "AT+STACH1=1" lässt sich als Beispiel Relais 1 einschalten.

      In Python würde ich das vielleicht noch halbwegs hinbekommen, aber in Javascript sind meine Erfahrungen gleich null.

      Ich möchte gerne die Zustände mit einem Intervall von vielleicht 500ms abfragen und in Datenpunkte schreiben und für jedes Relais einen Datenpunkt anlegen welcher dieses dann schaltet.

      Meine wahrscheinlich haarsträubenden Gehversuche möchte ich euch natürlich nicht vorenthalten 😄

      // Load the TCP Library
      var net = require('net');
      
      // Keep track of the chat clients
      var clients = [];
      
      // Start a TCP Server
      var server = net.createServer(function (socket) {
      
          // Identify this client
          socket.name = socket.remoteAddress + ":" + socket.remotePort
      
      
          function checkStatus() {
              socket.write("AT+OCCH1=?\n");
      
             socket.on('data', function (data) {
              
                  const state = data.toString().split(':');
                  if (state[0] = "+OCCH1") {
                      setState('javascript.0.Rolladen.EgSchlafen.Fenster1geschlossen'/*Fenster1geschlossen*/, Boolean(toInt(state[1])));
                  }
              });
      
      
              socket.write("AT+OCCH2=?\n");
      
              socket.on('data', function (data) {
             
                  const state = data.toString().split(':');
                  if (state[0] = "+OCCH2") {
                      setState('javascript.0.Rolladen.EgSchlafen.Fenster2geschlossen'/*Fenster2geschlossen*/, Boolean(toInt(state[1])));
                  }
              });
      
              socket.write("AT+OCCH3=?\n");
      
              socket.on('data', function (data) {
              
                  const state = data.toString().split(':');
                  if (state[0] = "+OCCH3") {
                      setState('javascript.0.Rolladen.EgSchlafen.TasterAuf'/*TasterAuf*/, Boolean(toInt(state[1])));
                  }
              });
      
      
             socket.write("AT+OCCH4=?\n");
      
              socket.on('data', function (data) {
               
                  const state = data.toString().split(':');
                  if (state[0] = "+OCCH4") {
                      setState('javascript.0.Rolladen.EgSchlafen.TasterAb'/*TasterAb*/, Boolean(toInt(state[1])));
                  }
              });
      
              //console.log(state[1]);
      
      
          };
      
         socket.on('end', function () {
              server.close();
          });
      
          setInterval(checkStatus, 3000);
      
      })
      server.listen(6000);
      
      
      console.log("Server running at port 6000\n");
      
      posted in JavaScript
      Carsten Eckstein
      Carsten Eckstein
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo