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. Praktische Anwendungen (Showcase)
  4. Garagentor-Fernbedienung (ESP01 Javascript)

NEWS

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

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

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

Garagentor-Fernbedienung (ESP01 Javascript)

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
6 Beiträge 1 Kommentatoren 1.4k 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.
  • MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #1

    Hallo, das ESP01 basierte "LC Technology Wifi Relay X2" Doppel-Relais-Modul gibt es für ein paar Euro im Internet aus den üblichen Quellen von verschiedenen Lieferanten.

    b8081436-c06a-4ad8-a601-08a962c2418a-grafik.png

    Ich habe es vor Jahren an den elektrischen Garagentorantrieb angeschlossen, um die bei einem Sturz kaputtgegangene Fernbedienung des Tors durch eine Smartphone-App zu ersetzen.
    Der Torantrieb hat Anschlussklemmen für einen externen Taster, wo eines der Relais des ESP-Moduls mit einem Puls einen Taster simulieren kann. Der Puls muss eine "ausreichende" Länge haben, da das Tor stehenbleibt, wenn der entsprechende Endschalter noch nicht "frei" ist.

    Das Ding ist im Haus-WLAN integriert, und lässt sich aus der Garageneinfahrt mit dem Smartphone erreichen.

    Nun habe ich experimentiert, mit dem Ziel. die original Firmware nicht durch etwas anderes zu ersetzen, da die Familie sich mit der App zur Bedienung des Relais auf dem Smartphone gerade angefreundet hat. ZUSÄTZLICH soll die Möglichkeit bestehen, das Tor über ioBroker zu steuern...

    Folgend das erste Stück Javascript-Code, das das Ding aus ioBroker ansteuern kann, ohne dass man auf der anderen Seite Tasmota auf den ESP01 spielt, oder eine eigene MQTT Firmware für den ESP01 schreibt ...

    Voraussetzung ist, dass man das Modul vorher schon in sein WLAN eingebucht bekommen hat...

    Getestet habe ich das Skript erst zum Schluss mit dem Garagentor-Antrieb ...
    Erste Versuche mit meinem Linux-PC und der Kommandozeile

    "nc -l 8080 | hexdump -C"

    EDIT: Hier die aktuelle Version des Skripts. Das lässt sich dann direkt aus Vis ansprechen:

    var net = require('net');
    
     
    
    function PulseLcTechRel(host, port, rel_no) {
    
      var client = net.connect({host: host, port: port}, function () {
    
        // 'connect' listener
       var arr = new Uint8Array(4);
      console.log('connected to LAN-Relais!, send On Message');
      arr[0]=0xA0;                 // command
      arr[1]=rel_no;               // relais number
      arr[2]=1;                    // on
      arr[3]=arr[0]+arr[1]+arr[2]; // checksum
      
      client.write(arr);
      setTimeout(function() {
      // Code, der erst nach 2 Sekunden ausgeführt wird, coomand and no same
      arr[2]=0;                    // off
      arr[3]=arr[0]+arr[1]+arr[2]; // checksum
      client.write(arr);
      console.log("Off Message sent");
      // client.close(); howto?
      client.end();
    }, 2000);
      });
    
     
    
      client.on('data', function (data) {
    
        console.log(data.toString());
    
        client.end();
    
      });
    
     
    
      client.on('end', function () {
    
        console.log('disconnected from LAN-Relais');
    
      });
    
     
    
      client.on('error', function (error) {
    
        console.error('error: ' + error);
    
        client.end();
    
      });
    
    }
    
    // On change
    on('0_userdata.0.Puls-Garagentor', function (obj) {
      if ( (obj.state.val ==true) && ( obj.state != obj.oldState))
        PulseLcTechRel('192.168.2.47', '8080', 1);
      //  PulseLcTechRel('192.168.2.26', '8080', 1);
      setState('0_userdata.0.Puls-Garagentor', false, true/*ack*/);
    }); 
    
    // On change
    on('0_userdata.0.Puls-Rolltor', function (obj) {
      if ( (obj.state.val ==true) && ( obj.state != obj.oldState))
        PulseLcTechRel('192.168.2.47', '8080', 2);
      //  PulseLcTechRel('192.168.2.26', '8080', 1);
      setState('0_userdata.0.Puls-Rolltor', false, true/*ack*/);
    }); 
    

    93d33f01-4d06-45dc-a906-f450e03ee63e-grafik.png

    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
    Linux pve 6.8.12-16-pve
    6 GByte RAM für den Container
    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
    Remote-Access über Wireguard der Fritzbox

    MartinPM 1 Antwort Letzte Antwort
    1
    • MartinPM MartinP

      Hallo, das ESP01 basierte "LC Technology Wifi Relay X2" Doppel-Relais-Modul gibt es für ein paar Euro im Internet aus den üblichen Quellen von verschiedenen Lieferanten.

      b8081436-c06a-4ad8-a601-08a962c2418a-grafik.png

      Ich habe es vor Jahren an den elektrischen Garagentorantrieb angeschlossen, um die bei einem Sturz kaputtgegangene Fernbedienung des Tors durch eine Smartphone-App zu ersetzen.
      Der Torantrieb hat Anschlussklemmen für einen externen Taster, wo eines der Relais des ESP-Moduls mit einem Puls einen Taster simulieren kann. Der Puls muss eine "ausreichende" Länge haben, da das Tor stehenbleibt, wenn der entsprechende Endschalter noch nicht "frei" ist.

      Das Ding ist im Haus-WLAN integriert, und lässt sich aus der Garageneinfahrt mit dem Smartphone erreichen.

      Nun habe ich experimentiert, mit dem Ziel. die original Firmware nicht durch etwas anderes zu ersetzen, da die Familie sich mit der App zur Bedienung des Relais auf dem Smartphone gerade angefreundet hat. ZUSÄTZLICH soll die Möglichkeit bestehen, das Tor über ioBroker zu steuern...

      Folgend das erste Stück Javascript-Code, das das Ding aus ioBroker ansteuern kann, ohne dass man auf der anderen Seite Tasmota auf den ESP01 spielt, oder eine eigene MQTT Firmware für den ESP01 schreibt ...

      Voraussetzung ist, dass man das Modul vorher schon in sein WLAN eingebucht bekommen hat...

      Getestet habe ich das Skript erst zum Schluss mit dem Garagentor-Antrieb ...
      Erste Versuche mit meinem Linux-PC und der Kommandozeile

      "nc -l 8080 | hexdump -C"

      EDIT: Hier die aktuelle Version des Skripts. Das lässt sich dann direkt aus Vis ansprechen:

      var net = require('net');
      
       
      
      function PulseLcTechRel(host, port, rel_no) {
      
        var client = net.connect({host: host, port: port}, function () {
      
          // 'connect' listener
         var arr = new Uint8Array(4);
        console.log('connected to LAN-Relais!, send On Message');
        arr[0]=0xA0;                 // command
        arr[1]=rel_no;               // relais number
        arr[2]=1;                    // on
        arr[3]=arr[0]+arr[1]+arr[2]; // checksum
        
        client.write(arr);
        setTimeout(function() {
        // Code, der erst nach 2 Sekunden ausgeführt wird, coomand and no same
        arr[2]=0;                    // off
        arr[3]=arr[0]+arr[1]+arr[2]; // checksum
        client.write(arr);
        console.log("Off Message sent");
        // client.close(); howto?
        client.end();
      }, 2000);
        });
      
       
      
        client.on('data', function (data) {
      
          console.log(data.toString());
      
          client.end();
      
        });
      
       
      
        client.on('end', function () {
      
          console.log('disconnected from LAN-Relais');
      
        });
      
       
      
        client.on('error', function (error) {
      
          console.error('error: ' + error);
      
          client.end();
      
        });
      
      }
      
      // On change
      on('0_userdata.0.Puls-Garagentor', function (obj) {
        if ( (obj.state.val ==true) && ( obj.state != obj.oldState))
          PulseLcTechRel('192.168.2.47', '8080', 1);
        //  PulseLcTechRel('192.168.2.26', '8080', 1);
        setState('0_userdata.0.Puls-Garagentor', false, true/*ack*/);
      }); 
      
      // On change
      on('0_userdata.0.Puls-Rolltor', function (obj) {
        if ( (obj.state.val ==true) && ( obj.state != obj.oldState))
          PulseLcTechRel('192.168.2.47', '8080', 2);
        //  PulseLcTechRel('192.168.2.26', '8080', 1);
        setState('0_userdata.0.Puls-Rolltor', false, true/*ack*/);
      }); 
      

      93d33f01-4d06-45dc-a906-f450e03ee63e-grafik.png

      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von
      #2

      Inzwischen läuft das Script schon einige Zeit.
      Werde wahrscheinlich noch etwas an der VIS-Darstellung arbeiten müssen.
      Es muss nicht absolut perfekt aussehen, aber derzeit ist die Bedienung doch etwas "Blindflug".

      Es gibt kaum eine Rückmeldung, ob der Touch der "Taste" auf dem Smartphone-Screen erkannt wurde.
      Etwas unbeholfen habe ich die Betätigung durch den Text für "HTML bei 'true'" sichtbar machen wollen.
      Damit man das aber verfolgen kann, müsste ich im Javascript wohl das Zurücksetzen auf "false" mit einem Timer verzögern - derzeit sieht man es schon nicht mehr, wenn man den Finger vom Knopf genommen hat ...

      Hat jemand Tipps wie man das einfach besser sichtbar machen kann?

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      MartinPM 1 Antwort Letzte Antwort
      0
      • MartinPM MartinP

        Inzwischen läuft das Script schon einige Zeit.
        Werde wahrscheinlich noch etwas an der VIS-Darstellung arbeiten müssen.
        Es muss nicht absolut perfekt aussehen, aber derzeit ist die Bedienung doch etwas "Blindflug".

        Es gibt kaum eine Rückmeldung, ob der Touch der "Taste" auf dem Smartphone-Screen erkannt wurde.
        Etwas unbeholfen habe ich die Betätigung durch den Text für "HTML bei 'true'" sichtbar machen wollen.
        Damit man das aber verfolgen kann, müsste ich im Javascript wohl das Zurücksetzen auf "false" mit einem Timer verzögern - derzeit sieht man es schon nicht mehr, wenn man den Finger vom Knopf genommen hat ...

        Hat jemand Tipps wie man das einfach besser sichtbar machen kann?

        MartinPM Online
        MartinPM Online
        MartinP
        schrieb am zuletzt editiert von MartinP
        #3

        Antworte mal selber.

        Habe ein paar kleine Umbauten gemacht

        Hier das aktualisierte Skript - schreibt nun Relais und Zustand des Datenpunkts parallel - dann sieht man auch etwas ...

        var net = require('net');
        
        /**  
        function PulseLcTechRelEx(host, port, rel_no, datapath)
        
        causes a 2 second pulse on LcTec relay board relay
        in parallel to manipulation of relais, the boolean at datapath is
        manipulated
        
        @brief set a ESP01 based LCTec Relais 
        
        @param [in] host - the ip address or name of host (i.e. ESP01 board) to address (eg 192.168.5.6)
        @param [in] port - the port to use to connect (e.g. 8080)
        @param [in] rel_no - the relay number, either 1 or 2
        @param [in] datapath - the path to manipulate
        
        */
          function PulseLcTechRelEx(host, port, rel_no, datapath) {
        
          var client = net.connect({host: host, port: port}, function () {
        
            // 'connect' listener
           var arr = new Uint8Array(4);
          console.log('connected to LAN-Relais!, send On Message');
          arr[0]=0xA0;                 // command
          arr[1]=rel_no;               // relais number
          arr[2]=1;                    // on
          arr[3]=arr[0]+arr[1]+arr[2]; // checksum
          
          // set relay 
          client.write(arr);
          // manipulate datapath 
          setState(datapath, true, true/*ack*/);
          
          setTimeout(function() {
          // Code, der erst nach 2 Sekunden ausgeführt wird, coomand and no same
          arr[2]=0;                    // off
          arr[3]=arr[0]+arr[1]+arr[2]; // checksum
          
          // reset relay
          client.write(arr);
          console.log("Off Message sent");
          // reset bool at datapath
          setState(datapath, false, true/*ack*/);
          // client.close(); howto?
          client.end();
        }, 2000);
          });
         
          client.on('data', function (data) {
        
            console.log(data.toString());
        
            client.end();
        
          });
        
        
         
          client.on('data', function (data) {
        
            console.log(data.toString());
        
            client.end();
        
          });
        
         
        
          client.on('end', function () {
        
            console.log('disconnected from LAN-Relais');
        
          });
        
         
        
          client.on('error', function (error) {
        
            console.error('error setting ' + datapath + ' - ' + error);
            setState(datapath, false, true/*ack*/);
            client.end();
        
          });
        
        var net = require('net');
        
        /**  
        function PulseLcTechRelEx(host, port, rel_no, datapath)
        
        causes a 2 second pulse on LcTec relay board relay
        in parallel to manipulation of relais, the boolean at datapath is
        manipulated
        
        @brief set a ESP01 based LCTec Relais 
        
        @param [in] host - the ip address or name of host (i.e. ESP01 board) to address (eg 192.168.5.6)
        @param [in] port - the port to use to connect (e.g. 8080)
        @param [in] rel_no - the relay number, either 1 or 2
        @param [in] datapath - the path to manipulate
        
        */
          function PulseLcTechRelEx(host, port, rel_no, datapath) {
        
          var client = net.connect({host: host, port: port}, function () {
        
            // 'connect' listener
           var arr = new Uint8Array(4);
          console.log('connected to LAN-Relais!, send On Message');
          arr[0]=0xA0;                 // command
          arr[1]=rel_no;               // relais number
          arr[2]=1;                    // on
          arr[3]=arr[0]+arr[1]+arr[2]; // checksum
          
          // set relay 
          client.write(arr);
          // manipulate datapath 
          setState(datapath, true, true/*ack*/);
          
          setTimeout(function() {
          // Code, der erst nach 2 Sekunden ausgeführt wird, coomand and no same
          arr[2]=0;                    // off
          arr[3]=arr[0]+arr[1]+arr[2]; // checksum
          
          // reset relay
          client.write(arr);
          console.log("Off Message sent");
          // reset bool at datapath
          setState(datapath, false, true/*ack*/);
          // client.close(); howto?
          client.end();
        }, 2000);
          });
         
          client.on('data', function (data) {
        
            console.log(data.toString());
        
            client.end();
        
          });
        
        
         
          client.on('data', function (data) {
        
            console.log(data.toString());
        
            client.end();
        
          });
        
         
        
          client.on('end', function () {
        
            console.log('disconnected from LAN-Relais');
        
          });
        
         
        
          client.on('error', function (error) {
        
            console.error('error: ' + error);
        
            client.end();
        
          });
        
        }
        
        // On change
        on('0_userdata.0.Puls-Garagentor', function (obj) {
          if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
            PulseLcTechRelEx('192.168.2.47', '8080', 1, '0_userdata.0.Puls-Garagentor');
          }
        }); 
        
        // On change
        on('0_userdata.0.Puls-Rolltor', function (obj) {
          if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
            PulseLcTechRelEx('192.168.2.47', '8080', 2, '0_userdata.0.Puls-Rolltor');
          }
        }); 
        
        
        // On change
        on('0_userdata.0.Puls-Test', function (obj) {
          if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
            PulseLcTechRelEx('192.168.2.26', '8080', 1, '0_userdata.0.Puls-Test');
          }
        }); 
        
        
        
        
        
        
        
        
        
        
        
        }
        
        // On change
        on('0_userdata.0.Puls-Garagentor', function (obj) {
          if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
            PulseLcTechRelEx('192.168.2.47', '8080', 1, '0_userdata.0.Puls-Garagentor');
          }
        }); 
        
        // On change
        on('0_userdata.0.Puls-Rolltor', function (obj) {
          if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
            PulseLcTechRelEx('192.168.2.47', '8080', 2, '0_userdata.0.Puls-Rolltor');
          }
        }); 
        
        
        // On change
        on('0_userdata.0.Puls-Test', function (obj) {
          if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
            PulseLcTechRelEx('192.168.2.26', '8080', 1, '0_userdata.0.Puls-Test');
          }
        }); 
        

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        MartinPM 1 Antwort Letzte Antwort
        0
        • MartinPM MartinP

          Antworte mal selber.

          Habe ein paar kleine Umbauten gemacht

          Hier das aktualisierte Skript - schreibt nun Relais und Zustand des Datenpunkts parallel - dann sieht man auch etwas ...

          var net = require('net');
          
          /**  
          function PulseLcTechRelEx(host, port, rel_no, datapath)
          
          causes a 2 second pulse on LcTec relay board relay
          in parallel to manipulation of relais, the boolean at datapath is
          manipulated
          
          @brief set a ESP01 based LCTec Relais 
          
          @param [in] host - the ip address or name of host (i.e. ESP01 board) to address (eg 192.168.5.6)
          @param [in] port - the port to use to connect (e.g. 8080)
          @param [in] rel_no - the relay number, either 1 or 2
          @param [in] datapath - the path to manipulate
          
          */
            function PulseLcTechRelEx(host, port, rel_no, datapath) {
          
            var client = net.connect({host: host, port: port}, function () {
          
              // 'connect' listener
             var arr = new Uint8Array(4);
            console.log('connected to LAN-Relais!, send On Message');
            arr[0]=0xA0;                 // command
            arr[1]=rel_no;               // relais number
            arr[2]=1;                    // on
            arr[3]=arr[0]+arr[1]+arr[2]; // checksum
            
            // set relay 
            client.write(arr);
            // manipulate datapath 
            setState(datapath, true, true/*ack*/);
            
            setTimeout(function() {
            // Code, der erst nach 2 Sekunden ausgeführt wird, coomand and no same
            arr[2]=0;                    // off
            arr[3]=arr[0]+arr[1]+arr[2]; // checksum
            
            // reset relay
            client.write(arr);
            console.log("Off Message sent");
            // reset bool at datapath
            setState(datapath, false, true/*ack*/);
            // client.close(); howto?
            client.end();
          }, 2000);
            });
           
            client.on('data', function (data) {
          
              console.log(data.toString());
          
              client.end();
          
            });
          
          
           
            client.on('data', function (data) {
          
              console.log(data.toString());
          
              client.end();
          
            });
          
           
          
            client.on('end', function () {
          
              console.log('disconnected from LAN-Relais');
          
            });
          
           
          
            client.on('error', function (error) {
          
              console.error('error setting ' + datapath + ' - ' + error);
              setState(datapath, false, true/*ack*/);
              client.end();
          
            });
          
          var net = require('net');
          
          /**  
          function PulseLcTechRelEx(host, port, rel_no, datapath)
          
          causes a 2 second pulse on LcTec relay board relay
          in parallel to manipulation of relais, the boolean at datapath is
          manipulated
          
          @brief set a ESP01 based LCTec Relais 
          
          @param [in] host - the ip address or name of host (i.e. ESP01 board) to address (eg 192.168.5.6)
          @param [in] port - the port to use to connect (e.g. 8080)
          @param [in] rel_no - the relay number, either 1 or 2
          @param [in] datapath - the path to manipulate
          
          */
            function PulseLcTechRelEx(host, port, rel_no, datapath) {
          
            var client = net.connect({host: host, port: port}, function () {
          
              // 'connect' listener
             var arr = new Uint8Array(4);
            console.log('connected to LAN-Relais!, send On Message');
            arr[0]=0xA0;                 // command
            arr[1]=rel_no;               // relais number
            arr[2]=1;                    // on
            arr[3]=arr[0]+arr[1]+arr[2]; // checksum
            
            // set relay 
            client.write(arr);
            // manipulate datapath 
            setState(datapath, true, true/*ack*/);
            
            setTimeout(function() {
            // Code, der erst nach 2 Sekunden ausgeführt wird, coomand and no same
            arr[2]=0;                    // off
            arr[3]=arr[0]+arr[1]+arr[2]; // checksum
            
            // reset relay
            client.write(arr);
            console.log("Off Message sent");
            // reset bool at datapath
            setState(datapath, false, true/*ack*/);
            // client.close(); howto?
            client.end();
          }, 2000);
            });
           
            client.on('data', function (data) {
          
              console.log(data.toString());
          
              client.end();
          
            });
          
          
           
            client.on('data', function (data) {
          
              console.log(data.toString());
          
              client.end();
          
            });
          
           
          
            client.on('end', function () {
          
              console.log('disconnected from LAN-Relais');
          
            });
          
           
          
            client.on('error', function (error) {
          
              console.error('error: ' + error);
          
              client.end();
          
            });
          
          }
          
          // On change
          on('0_userdata.0.Puls-Garagentor', function (obj) {
            if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
              PulseLcTechRelEx('192.168.2.47', '8080', 1, '0_userdata.0.Puls-Garagentor');
            }
          }); 
          
          // On change
          on('0_userdata.0.Puls-Rolltor', function (obj) {
            if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
              PulseLcTechRelEx('192.168.2.47', '8080', 2, '0_userdata.0.Puls-Rolltor');
            }
          }); 
          
          
          // On change
          on('0_userdata.0.Puls-Test', function (obj) {
            if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
              PulseLcTechRelEx('192.168.2.26', '8080', 1, '0_userdata.0.Puls-Test');
            }
          }); 
          
          
          
          
          
          
          
          
          
          
          
          }
          
          // On change
          on('0_userdata.0.Puls-Garagentor', function (obj) {
            if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
              PulseLcTechRelEx('192.168.2.47', '8080', 1, '0_userdata.0.Puls-Garagentor');
            }
          }); 
          
          // On change
          on('0_userdata.0.Puls-Rolltor', function (obj) {
            if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
              PulseLcTechRelEx('192.168.2.47', '8080', 2, '0_userdata.0.Puls-Rolltor');
            }
          }); 
          
          
          // On change
          on('0_userdata.0.Puls-Test', function (obj) {
            if ( (obj.state.val ==true) && ( obj.state != obj.oldState)) {
              PulseLcTechRelEx('192.168.2.26', '8080', 1, '0_userdata.0.Puls-Test');
            }
          }); 
          
          MartinPM Online
          MartinPM Online
          MartinP
          schrieb am zuletzt editiert von MartinP
          #4

          hier noch ein besserer Test-Sparringspartner für die Linux-Kommandozeile

          artin@martin-D2836-S1:/usr/local/share/ca-certificates$ nc -I4 -k -l 8080 |xxd -c4 -p -u 
          A00101A2
          A00100A1
          A00101A2
          A00100A1
          
          

          netcat server auf Port 8080 (-l 8080)
          läuft weiter, wenn client Verbindung trennt (-k)

          Filter xxd (Hexdump)

          4 Bytes pro Zeile (=telegrammlänge, mit "-c4")
          plain output (-p) -> keine "Adresse" vorab

          Oben habe ich zweimal den entsprechende Knopf in VIS aktiviert

          Bisher ist es mir nicht gelungen, mit dem Tool "ts" auch einen Timestamp in die Zeilen hereinzufummeln

          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
          Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
          Linux pve 6.8.12-16-pve
          6 GByte RAM für den Container
          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
          Remote-Access über Wireguard der Fritzbox

          MartinPM 1 Antwort Letzte Antwort
          0
          • MartinPM MartinP

            hier noch ein besserer Test-Sparringspartner für die Linux-Kommandozeile

            artin@martin-D2836-S1:/usr/local/share/ca-certificates$ nc -I4 -k -l 8080 |xxd -c4 -p -u 
            A00101A2
            A00100A1
            A00101A2
            A00100A1
            
            

            netcat server auf Port 8080 (-l 8080)
            läuft weiter, wenn client Verbindung trennt (-k)

            Filter xxd (Hexdump)

            4 Bytes pro Zeile (=telegrammlänge, mit "-c4")
            plain output (-p) -> keine "Adresse" vorab

            Oben habe ich zweimal den entsprechende Knopf in VIS aktiviert

            Bisher ist es mir nicht gelungen, mit dem Tool "ts" auch einen Timestamp in die Zeilen hereinzufummeln

            MartinPM Online
            MartinPM Online
            MartinP
            schrieb am zuletzt editiert von
            #5

            Leider scheint das Modul einen schwer nachvollziehbaren Hang zum Absturz zu entwickeln. Alle paar Tage reagiert das Modul nicht mehr auf die abgesetzten Telegramme.

            Bisher hatte ich dann immer das USB-Steckernetzteil, was das System mit Energie versorgt ein paar Sekunden herausgezogen, und dann wieder eingesteckt.
            Beim letzten Problem hatte ich aber schon eine Vorsorge getroffen, und die IPv4 Adresse des Moduls im Ping-Adapter überwachen lassen - der zeigte kein Problem an, und auch manuell ließ sich das Modul anpingen ...

            Es wird unter den Umständen wohl schwierig, den "Abgeschmiert" Zustand des Moduls von außen zu detektieren.

            An der seriellen Schnittstelle des per WLAN mit meinem Skript kommunizierenden ESP01 hängt ein weiterer Microcontroller, der wiederum die Relais ansteuert. Entweder hängt es in der Kommunikation dieses Microcontrollers mit dem ESP01, oder die Firmware auf diesem Microcontroller hat sich aufgehängt ...

            Werde an zwei Fronten versuchen, den Fehler zu beseitigen:

            • Hardware: Eventuell mit Stützkondensatoren o. Ä. die Qualität der Spannungsversorgung verbessern.
            • Mein Javascript: Mit irgendwelchen "Aufweck-Telegrammen" den sekundären Microcontroller versuchen, aus seinem Schlaf zu wecken...

            Bevor ich mich an die Software mache werde ich aber wohl noch ein paar Abstürze des Moduls abwarten, und schauen, ob immer das gleiche Fehlerbild auftritt...

            Vielleicht sollte ich auch einfach probieren, Tasmota draufzuflashen ...

            https://tasmota.github.io/docs/devices/LC-Technology-WiFi-Relay/#lc-technology-wifi-relay-dual-relay-note-older-versions-of-this-board-used-a-baud-rate-of-9600-so-if-115200-doesnt-work-try-9600

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            MartinPM 1 Antwort Letzte Antwort
            0
            • MartinPM MartinP

              Leider scheint das Modul einen schwer nachvollziehbaren Hang zum Absturz zu entwickeln. Alle paar Tage reagiert das Modul nicht mehr auf die abgesetzten Telegramme.

              Bisher hatte ich dann immer das USB-Steckernetzteil, was das System mit Energie versorgt ein paar Sekunden herausgezogen, und dann wieder eingesteckt.
              Beim letzten Problem hatte ich aber schon eine Vorsorge getroffen, und die IPv4 Adresse des Moduls im Ping-Adapter überwachen lassen - der zeigte kein Problem an, und auch manuell ließ sich das Modul anpingen ...

              Es wird unter den Umständen wohl schwierig, den "Abgeschmiert" Zustand des Moduls von außen zu detektieren.

              An der seriellen Schnittstelle des per WLAN mit meinem Skript kommunizierenden ESP01 hängt ein weiterer Microcontroller, der wiederum die Relais ansteuert. Entweder hängt es in der Kommunikation dieses Microcontrollers mit dem ESP01, oder die Firmware auf diesem Microcontroller hat sich aufgehängt ...

              Werde an zwei Fronten versuchen, den Fehler zu beseitigen:

              • Hardware: Eventuell mit Stützkondensatoren o. Ä. die Qualität der Spannungsversorgung verbessern.
              • Mein Javascript: Mit irgendwelchen "Aufweck-Telegrammen" den sekundären Microcontroller versuchen, aus seinem Schlaf zu wecken...

              Bevor ich mich an die Software mache werde ich aber wohl noch ein paar Abstürze des Moduls abwarten, und schauen, ob immer das gleiche Fehlerbild auftritt...

              Vielleicht sollte ich auch einfach probieren, Tasmota draufzuflashen ...

              https://tasmota.github.io/docs/devices/LC-Technology-WiFi-Relay/#lc-technology-wifi-relay-dual-relay-note-older-versions-of-this-board-used-a-baud-rate-of-9600-so-if-115200-doesnt-work-try-9600

              MartinPM Online
              MartinPM Online
              MartinP
              schrieb am zuletzt editiert von
              #6

              Seitdem ich der Fritzbox verboten habe, nach Gutdünken den 2,4 GHz Wifi-Kanal zu wechseln hat sich das Problem mit den Abstürzen verflüchtigt ...
              Monatelang ohne Probleme, solange das WLAN der Fritzbox nicht mal kurz weg ist ...

              Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
              Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
              Linux pve 6.8.12-16-pve
              6 GByte RAM für den Container
              Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
              Remote-Access über Wireguard der Fritzbox

              1 Antwort Letzte Antwort
              1
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              365

              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