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. Benötige Programmierhilfe Javascript

NEWS

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

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

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

Benötige Programmierhilfe Javascript

Geplant Angeheftet Gesperrt Verschoben JavaScript
communicationjavascriptmonitoring
60 Beiträge 5 Kommentatoren 5.0k Aufrufe 4 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.
  • OliverIOO OliverIO

    @rushmed

    du musst leider nochmal. die console.debug anweisungen sind nicht im log erschienen.
    hab wieder auf console.log umgestellt.

    es reicht erst mal eines. dann prüfen wir ob alles so abläuft wie gewünscht.
    noch eins.
    stoppe und starte bitte den javascript-adapter bevor du testest.
    dass räumt die evtl. reste aus dem speicher die nur stören.

    var net = require('net'); 
    
    var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
    var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
    var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
    
    var deviceName = "Garagentor";
    var host = "192.168.178.149";
    var port = 2785;
    
    function sendMessage(host, port, message) {
    var timeout = 1000;                           //timeout für Antwort vom Server
    var time2termination = 1000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
    var terminator;
    var terminatorStart;
    var terminatorEnd;
    return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
      var client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
    
      client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
        console.log('cliend started');
        terminatorStart();                        // Time starten, der die Verbindung beendet, falls keine Antwort mehr kommt
        client.setTimeout(timeout);               // internes timeout setzen
        client.write(message);                    // Nachricht an Gerät senden
      });
      
      client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
        console.log('client received: ' + data);
        terminatorStart();                        // Den Timeout verlängern
        var dataS = data.toString();              // Datenbuffer in lesbaren Text umwandeln
        switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
            case "S;"+deviceName+";open":         // wenn open
            setState(dp_door,"open");             // dann Datenpunkt setzen
            break;
            case "S;"+deviceName+";closed":
            setState(dp_door,"closed");
            break;
            case "S;"+deviceName+";opening":
            setState(dp_door,"opening");
            break;
            case "S;"+deviceName+";closing":
            setState(dp_door,"closing");
            break;
            case "S;"+deviceName+";lightOn":
            setState(dp_light,"lightOn");
            break;
            case "S;"+deviceName+";lightOff":
            setState(dp_light,"lightOff");
            break;
        }
      });
      client.on("error",(err)=>{                  // wenn ein Fehler entsteht
        console.log("client error");
        terminatorEnd();                          // dann timeout beenden
       client.end();                             // Kommunikation beenden
        resolve(err);                             // und Fehlerdetails zurückgeben
      });
      client.on("timeout",()=>{                   // wenn timeout entsteht
        console.log("client timeout");
        terminatorEnd();                          // dann timeout beenden
        client.end();                             // Kommunikation beenden
        resolve("timeout");                       // text timeout zurückgeben
      });
      terminatorStart = function() {              // timeout starten oder verlängern
        console.log("client terminatorStart");
        if (terminator) clearTimeout(terminator); // evtl vorhanden timeout beenden
        terminator = setTimeout(() => {           // neuen timeout starten. wenn timeout eintritt, dann folgende funktionen ausführen
          console.log('cliend ended');
          client.end();                           // kommunikation beenden
          resolve("ok");                          // ok zurückgeben
        }, time2termination);                     // zeit für timeout angeben
      };
      terminatorEnd = function() {                // timeout beenden
        console.log("client terminatorEnd");
        if (terminator) clearTimeout(terminator);      
      };
    });
    }
    on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
      var cmd;
      if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
          cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
          console.log('execute command: ' + cmd);
          switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
              case "open":                        // wenn open
                  sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                  break;
              case "close":
                  sendMessage(host, port, "C;"+deviceName+";close");
                  break;
              case "stop":
                  sendMessage(host, port, "C;"+deviceName+";stop");
                  break;
              case "lighton":
                  sendMessage(host, port, "C;"+deviceName+";lightOn");
                  break;
              case "lightoff":
                  sendMessage(host, port, "C;"+deviceName+";lightOff");
                  break;
          }
          setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
      }
    });
    
    

    R Offline
    R Offline
    Rushmed
    Most Active
    schrieb am zuletzt editiert von
    #33

    @oliverio sagte in Benötige Programmierhilfe Javascript:

    Kein Problem.
    Öffnen:

    30.8.2022, 19:58:37.852	[info ]: javascript.0 (1060380) script.js.Garage: execute command: open
    30.8.2022, 19:58:37.858	[info ]: javascript.0 (1060380) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661882317857,"q":0,"from":"system.adapter.javascript.0","lc":1661882317857,"c":"script.js.Garage"})
    30.8.2022, 19:58:37.872	[info ]: javascript.0 (1060380) script.js.Garage: cliend started
    30.8.2022, 19:58:37.873	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:58:37.874	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:58:37.909	[info ]: javascript.0 (1060380) script.js.Garage: client received: R;OK
    
    30.8.2022, 19:58:37.910	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:58:37.910	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    30.8.2022, 19:58:37.911	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:58:38.225	[info ]: javascript.0 (1060380) script.js.Garage: client received: S;Garagentor;opening
    
    30.8.2022, 19:58:38.225	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:58:38.226	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    30.8.2022, 19:58:38.226	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:58:38.294	[info ]: javascript.0 (1060380) script.js.Garage: client received: S;Garagentor;lightOn
    
    30.8.2022, 19:58:38.294	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:58:38.295	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    30.8.2022, 19:58:38.295	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:58:39.294	[info ]: javascript.0 (1060380) script.js.Garage: client timeout
    30.8.2022, 19:58:39.295	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorEnd
    30.8.2022, 19:58:39.296	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    

    Schließen:

    30.8.2022, 19:59:33.336	[info ]: javascript.0 (1060380) script.js.Garage: execute command: close
    30.8.2022, 19:59:33.337	[info ]: javascript.0 (1060380) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661882373337,"q":0,"from":"system.adapter.javascript.0","lc":1661882373337,"c":"script.js.Garage"})
    30.8.2022, 19:59:33.356	[info ]: javascript.0 (1060380) script.js.Garage: cliend started
    30.8.2022, 19:59:33.357	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:59:33.357	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:59:33.397	[info ]: javascript.0 (1060380) script.js.Garage: client received: R;OK
    
    30.8.2022, 19:59:33.397	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:59:33.397	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    30.8.2022, 19:59:33.398	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:59:33.755	[info ]: javascript.0 (1060380) script.js.Garage: client received: S;Garagentor;closing
    
    30.8.2022, 19:59:33.756	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
    30.8.2022, 19:59:33.756	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    30.8.2022, 19:59:33.756	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
    30.8.2022, 19:59:34.755	[info ]: javascript.0 (1060380) script.js.Garage: client timeout
    30.8.2022, 19:59:34.756	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorEnd
    30.8.2022, 19:59:34.757	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
    

    Zur Info, VErbose ist noch aktiviert und die DPs für Status Licht, Tor werden nicht beschrieben.

    OliverIOO 1 Antwort Letzte Antwort
    0
    • R Rushmed

      @oliverio sagte in Benötige Programmierhilfe Javascript:

      Kein Problem.
      Öffnen:

      30.8.2022, 19:58:37.852	[info ]: javascript.0 (1060380) script.js.Garage: execute command: open
      30.8.2022, 19:58:37.858	[info ]: javascript.0 (1060380) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661882317857,"q":0,"from":"system.adapter.javascript.0","lc":1661882317857,"c":"script.js.Garage"})
      30.8.2022, 19:58:37.872	[info ]: javascript.0 (1060380) script.js.Garage: cliend started
      30.8.2022, 19:58:37.873	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:58:37.874	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:58:37.909	[info ]: javascript.0 (1060380) script.js.Garage: client received: R;OK
      
      30.8.2022, 19:58:37.910	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:58:37.910	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      30.8.2022, 19:58:37.911	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:58:38.225	[info ]: javascript.0 (1060380) script.js.Garage: client received: S;Garagentor;opening
      
      30.8.2022, 19:58:38.225	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:58:38.226	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      30.8.2022, 19:58:38.226	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:58:38.294	[info ]: javascript.0 (1060380) script.js.Garage: client received: S;Garagentor;lightOn
      
      30.8.2022, 19:58:38.294	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:58:38.295	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      30.8.2022, 19:58:38.295	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:58:39.294	[info ]: javascript.0 (1060380) script.js.Garage: client timeout
      30.8.2022, 19:58:39.295	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorEnd
      30.8.2022, 19:58:39.296	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      

      Schließen:

      30.8.2022, 19:59:33.336	[info ]: javascript.0 (1060380) script.js.Garage: execute command: close
      30.8.2022, 19:59:33.337	[info ]: javascript.0 (1060380) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661882373337,"q":0,"from":"system.adapter.javascript.0","lc":1661882373337,"c":"script.js.Garage"})
      30.8.2022, 19:59:33.356	[info ]: javascript.0 (1060380) script.js.Garage: cliend started
      30.8.2022, 19:59:33.357	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:59:33.357	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:59:33.397	[info ]: javascript.0 (1060380) script.js.Garage: client received: R;OK
      
      30.8.2022, 19:59:33.397	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:59:33.397	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      30.8.2022, 19:59:33.398	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:59:33.755	[info ]: javascript.0 (1060380) script.js.Garage: client received: S;Garagentor;closing
      
      30.8.2022, 19:59:33.756	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorStart
      30.8.2022, 19:59:33.756	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      30.8.2022, 19:59:33.756	[info ]: javascript.0 (1060380) script.js.Garage: setTimeout(ms=1000)
      30.8.2022, 19:59:34.755	[info ]: javascript.0 (1060380) script.js.Garage: client timeout
      30.8.2022, 19:59:34.756	[info ]: javascript.0 (1060380) script.js.Garage: client terminatorEnd
      30.8.2022, 19:59:34.757	[info ]: javascript.0 (1060380) script.js.Garage: clearTimeout() => cleared
      

      Zur Info, VErbose ist noch aktiviert und die DPs für Status Licht, Tor werden nicht beschrieben.

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #34

      @rushmed
      schau mal an dem schraubenschlüssel oben rechts, ob da debug aus ist?
      dadurch werden keine datenpunkte beschrieben. also es muss aus sein

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      R 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @rushmed
        schau mal an dem schraubenschlüssel oben rechts, ob da debug aus ist?
        dadurch werden keine datenpunkte beschrieben. also es muss aus sein

        R Offline
        R Offline
        Rushmed
        Most Active
        schrieb am zuletzt editiert von
        #35

        @oliverio Debug ist aus. Wie gesagt verbose war an. Habs mal deaktiviert und getastet, ändert nichts.

        Das Leeren von 0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command hat seit dus eingebaut hast immer geklappt.
        Also geht Schreiben offensichtlich.

        OliverIOO 1 Antwort Letzte Antwort
        0
        • R Rushmed

          @oliverio Debug ist aus. Wie gesagt verbose war an. Habs mal deaktiviert und getastet, ändert nichts.

          Das Leeren von 0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command hat seit dus eingebaut hast immer geklappt.
          Also geht Schreiben offensichtlich.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #36

          @rushmed

          ich habe nochmal die logausgabe um einen parameter erweitert und die timeout zeit auf 10 Sekunden erhöht.
          Der Status der ankommt müsste schon richtig sein. In der Entscheidungsmatrix greift er aber nicht. Das prüfen wir damit.
          Darüber hinaus kommt nur einmal "closing" und sonst nix. wenn dann wollen wir ja nach einer weile zumindest wissen das dann tatsächlich closed ist

          könntest du parallel bitte auch dieser Firma eine EMail senden, das sie dir eine aktualisierte API-Beschreibung senden? Deine verlinkte scheint ja nicht ganz aktuell zu sein.
          Ich erhoffe mir, das da auch ein paar mehr Details zur generellen Statusabfrage drin steht.
          Also am besten dem Hersteller und nicht irgendeinem Vertriebspartner.

          
          var net = require('net'); 
          
          var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
          var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
          var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
          
          var deviceName = "Garagentor";
          var host = "192.168.178.149";
          var port = 2785;
          
          function sendMessage(host, port, message) {
          var timeout = 10000;                           //timeout für Antwort vom Server
          var time2termination = 10000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
          var terminator;
          var terminatorStart;
          var terminatorEnd;
          return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
            var client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
          
            client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
              console.debug('cliend started');
              terminatorStart();                        // Time starten, der die Verbindung beendet, falls keine Antwort mehr kommt
              client.setTimeout(timeout);               // internes timeout setzen
              client.write(message);                    // Nachricht an Gerät senden
            });
            
            client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
              console.log('client received: ' + data + " for device: " + deviceName);
              terminatorStart();                        // Den Timeout verlängern
              var dataS = data.toString();              // Datenbuffer in lesbaren Text umwandeln
              switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                  case "S;"+deviceName+";open":         // wenn open
                  setState(dp_door,"open");             // dann Datenpunkt setzen
                  break;
                  case "S;"+deviceName+";closed":
                  setState(dp_door,"closed");
                  break;
                  case "S;"+deviceName+";opening":
                  setState(dp_door,"opening");
                  break;
                  case "S;"+deviceName+";closing":
                  setState(dp_door,"closing");
                  break;
                  case "S;"+deviceName+";lightOn":
                  setState(dp_light,"lightOn");
                  break;
                  case "S;"+deviceName+";lightOff":
                  setState(dp_light,"lightOff");
                  break;
              }
            });
            client.on("error",(err)=>{                  // wenn ein Fehler entsteht
              console.log("client error");
              terminatorEnd();                          // dann timeout beenden
             client.end();                             // Kommunikation beenden
              resolve(err);                             // und Fehlerdetails zurückgeben
            });
            client.on("timeout",()=>{                   // wenn timeout entsteht
              console.log("client timeout");
              terminatorEnd();                          // dann timeout beenden
              client.end();                             // Kommunikation beenden
              resolve("timeout");                       // text timeout zurückgeben
            });
            terminatorStart = function() {              // timeout starten oder verlängern
              console.log("client terminatorStart");
              if (terminator) clearTimeout(terminator); // evtl vorhanden timeout beenden
              terminator = setTimeout(() => {           // neuen timeout starten. wenn timeout eintritt, dann folgende funktionen ausführen
                console.log('cliend ended');
                client.end();                           // kommunikation beenden
                resolve("ok");                          // ok zurückgeben
              }, time2termination);                     // zeit für timeout angeben
            };
            terminatorEnd = function() {                // timeout beenden
              console.log("client terminatorEnd");
              if (terminator) clearTimeout(terminator);      
            };
          });
          }
          on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
            var cmd;
            if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                console.debug('execute command: ' + cmd);
                switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                    case "open":                        // wenn open
                        sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                        break;
                    case "close":
                        sendMessage(host, port, "C;"+deviceName+";close");
                        break;
                    case "stop":
                        sendMessage(host, port, "C;"+deviceName+";stop");
                        break;
                    case "lighton":
                        sendMessage(host, port, "C;"+deviceName+";lightOn");
                        break;
                    case "lightoff":
                        sendMessage(host, port, "C;"+deviceName+";lightOff");
                        break;
                }
                setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
            }
          });
          
          

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          R 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @rushmed

            ich habe nochmal die logausgabe um einen parameter erweitert und die timeout zeit auf 10 Sekunden erhöht.
            Der Status der ankommt müsste schon richtig sein. In der Entscheidungsmatrix greift er aber nicht. Das prüfen wir damit.
            Darüber hinaus kommt nur einmal "closing" und sonst nix. wenn dann wollen wir ja nach einer weile zumindest wissen das dann tatsächlich closed ist

            könntest du parallel bitte auch dieser Firma eine EMail senden, das sie dir eine aktualisierte API-Beschreibung senden? Deine verlinkte scheint ja nicht ganz aktuell zu sein.
            Ich erhoffe mir, das da auch ein paar mehr Details zur generellen Statusabfrage drin steht.
            Also am besten dem Hersteller und nicht irgendeinem Vertriebspartner.

            
            var net = require('net'); 
            
            var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
            var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
            var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
            
            var deviceName = "Garagentor";
            var host = "192.168.178.149";
            var port = 2785;
            
            function sendMessage(host, port, message) {
            var timeout = 10000;                           //timeout für Antwort vom Server
            var time2termination = 10000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
            var terminator;
            var terminatorStart;
            var terminatorEnd;
            return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
              var client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
            
              client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                console.debug('cliend started');
                terminatorStart();                        // Time starten, der die Verbindung beendet, falls keine Antwort mehr kommt
                client.setTimeout(timeout);               // internes timeout setzen
                client.write(message);                    // Nachricht an Gerät senden
              });
              
              client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                console.log('client received: ' + data + " for device: " + deviceName);
                terminatorStart();                        // Den Timeout verlängern
                var dataS = data.toString();              // Datenbuffer in lesbaren Text umwandeln
                switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                    case "S;"+deviceName+";open":         // wenn open
                    setState(dp_door,"open");             // dann Datenpunkt setzen
                    break;
                    case "S;"+deviceName+";closed":
                    setState(dp_door,"closed");
                    break;
                    case "S;"+deviceName+";opening":
                    setState(dp_door,"opening");
                    break;
                    case "S;"+deviceName+";closing":
                    setState(dp_door,"closing");
                    break;
                    case "S;"+deviceName+";lightOn":
                    setState(dp_light,"lightOn");
                    break;
                    case "S;"+deviceName+";lightOff":
                    setState(dp_light,"lightOff");
                    break;
                }
              });
              client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                console.log("client error");
                terminatorEnd();                          // dann timeout beenden
               client.end();                             // Kommunikation beenden
                resolve(err);                             // und Fehlerdetails zurückgeben
              });
              client.on("timeout",()=>{                   // wenn timeout entsteht
                console.log("client timeout");
                terminatorEnd();                          // dann timeout beenden
                client.end();                             // Kommunikation beenden
                resolve("timeout");                       // text timeout zurückgeben
              });
              terminatorStart = function() {              // timeout starten oder verlängern
                console.log("client terminatorStart");
                if (terminator) clearTimeout(terminator); // evtl vorhanden timeout beenden
                terminator = setTimeout(() => {           // neuen timeout starten. wenn timeout eintritt, dann folgende funktionen ausführen
                  console.log('cliend ended');
                  client.end();                           // kommunikation beenden
                  resolve("ok");                          // ok zurückgeben
                }, time2termination);                     // zeit für timeout angeben
              };
              terminatorEnd = function() {                // timeout beenden
                console.log("client terminatorEnd");
                if (terminator) clearTimeout(terminator);      
              };
            });
            }
            on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
              var cmd;
              if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                  cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                  console.debug('execute command: ' + cmd);
                  switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                      case "open":                        // wenn open
                          sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                          break;
                      case "close":
                          sendMessage(host, port, "C;"+deviceName+";close");
                          break;
                      case "stop":
                          sendMessage(host, port, "C;"+deviceName+";stop");
                          break;
                      case "lighton":
                          sendMessage(host, port, "C;"+deviceName+";lightOn");
                          break;
                      case "lightoff":
                          sendMessage(host, port, "C;"+deviceName+";lightOff");
                          break;
                  }
                  setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
              }
            });
            
            

            R Offline
            R Offline
            Rushmed
            Most Active
            schrieb am zuletzt editiert von
            #37

            @oliverio Antwort von Marantec vom 03.06.2022 08:21:

            Guten Tag Herr x,
            
            vielen Dank für Ihre Anfrage.
            Anbei erhalten Sie eine Übersicht der Befehle
            
            Status                                      Code
            Tor ist geöffnet:                        S;'garageDoorName';open
            Tor ist geschlossen:                 S;'garageDoorName';closed
            Tor öffnet sich:                         S;'garageDoorName';opening
            Tor schließt sich:                      S;'garageDoorName';closing
            Antriebsbeleuchtung ist an:     S;'garageDoorName';lightOn
            Antriebsbeleuchtung ist aus:   S:'garageDoorName';lightOff
            
            Befehl                                      Code
            Öffnen:                                    C;'garageDoorName';open
            Schließen:                               C;'garageDoorName';close
            Stop:                                       C;'garageDoorName';stop
            Antriebsbeleuchtung an:         C;'garageDoorName';lightOn
            Antriebsbeleuchtung aus:       C;'garageDoorName';lightOf
            
            garageDoorName = Der Name Ihres Tores
            Mit freundlichen Grüßen / Best regards
            
            Christian Pieper
            T +49 5247 705-221 · F +49 5247 705-234
            service@marantec.de · www.marantec.com
            
            

            Vermutlich fehlt beim letzten Befehl das zweite "f".

            Open:

            31.8.2022, 11:51:12.425	[info ]: javascript.0 (612549) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661939472425,"q":0,"from":"system.adapter.javascript.0","lc":1661939472425,"c":"script.js.Garage"})
            31.8.2022, 11:51:12.440	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:51:12.441	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:51:12.472	[info ]: javascript.0 (612549) script.js.Garage: client received: R;OK
            for device: Garagentor
            31.8.2022, 11:51:12.473	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:51:12.473	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            31.8.2022, 11:51:12.473	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:51:12.696	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;opening
            for device: Garagentor
            31.8.2022, 11:51:12.696	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:51:12.696	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            31.8.2022, 11:51:12.697	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:51:12.760	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
            for device: Garagentor
            31.8.2022, 11:51:12.761	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:51:12.762	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            31.8.2022, 11:51:12.762	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:51:22.760	[info ]: javascript.0 (612549) script.js.Garage: client timeout
            31.8.2022, 11:51:22.762	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
            31.8.2022, 11:51:22.762	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            

            Close:

            31.8.2022, 11:52:45.628	[info ]: javascript.0 (612549) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661939565627,"q":0,"from":"system.adapter.javascript.0","lc":1661939565627,"c":"script.js.Garage"})
            31.8.2022, 11:52:45.646	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:52:45.646	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:52:45.698	[info ]: javascript.0 (612549) script.js.Garage: client received: R;OK
            for device: Garagentor
            31.8.2022, 11:52:45.699	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:52:45.699	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            31.8.2022, 11:52:45.699	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:52:46.144	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
            for device: Garagentor
            31.8.2022, 11:52:46.145	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
            31.8.2022, 11:52:46.145	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            31.8.2022, 11:52:46.146	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
            31.8.2022, 11:52:56.144	[info ]: javascript.0 (612549) script.js.Garage: client timeout
            31.8.2022, 11:52:56.145	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
            31.8.2022, 11:52:56.145	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
            

            @oliverio sagte in Benötige Programmierhilfe Javascript:

            Darüber hinaus kommt nur einmal "closing" und sonst nix. wenn dann wollen wir ja nach einer weile zumindest wissen das dann tatsächlich closed ist

            Ja stimmt, die Bestätigung der Endlagen kommt nichtmehr an. Mit dem neuen Code auch nicht.
            Auch die Datenpunkte bleiben leer.

            Nach dem Schließen bleibt die Lampe noch drei Minuten an. Die Bestätigung des Ausschaltens kommt jetzt auch nicht mehr an.

            Soll ich verbose jetzt weiter aktiviert lassen oder nicht?

            Danke vorab!

            OliverIOO 1 Antwort Letzte Antwort
            0
            • R Rushmed

              @oliverio Antwort von Marantec vom 03.06.2022 08:21:

              Guten Tag Herr x,
              
              vielen Dank für Ihre Anfrage.
              Anbei erhalten Sie eine Übersicht der Befehle
              
              Status                                      Code
              Tor ist geöffnet:                        S;'garageDoorName';open
              Tor ist geschlossen:                 S;'garageDoorName';closed
              Tor öffnet sich:                         S;'garageDoorName';opening
              Tor schließt sich:                      S;'garageDoorName';closing
              Antriebsbeleuchtung ist an:     S;'garageDoorName';lightOn
              Antriebsbeleuchtung ist aus:   S:'garageDoorName';lightOff
              
              Befehl                                      Code
              Öffnen:                                    C;'garageDoorName';open
              Schließen:                               C;'garageDoorName';close
              Stop:                                       C;'garageDoorName';stop
              Antriebsbeleuchtung an:         C;'garageDoorName';lightOn
              Antriebsbeleuchtung aus:       C;'garageDoorName';lightOf
              
              garageDoorName = Der Name Ihres Tores
              Mit freundlichen Grüßen / Best regards
              
              Christian Pieper
              T +49 5247 705-221 · F +49 5247 705-234
              service@marantec.de · www.marantec.com
              
              

              Vermutlich fehlt beim letzten Befehl das zweite "f".

              Open:

              31.8.2022, 11:51:12.425	[info ]: javascript.0 (612549) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661939472425,"q":0,"from":"system.adapter.javascript.0","lc":1661939472425,"c":"script.js.Garage"})
              31.8.2022, 11:51:12.440	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:51:12.441	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:51:12.472	[info ]: javascript.0 (612549) script.js.Garage: client received: R;OK
              for device: Garagentor
              31.8.2022, 11:51:12.473	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:51:12.473	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              31.8.2022, 11:51:12.473	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:51:12.696	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;opening
              for device: Garagentor
              31.8.2022, 11:51:12.696	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:51:12.696	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              31.8.2022, 11:51:12.697	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:51:12.760	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
              for device: Garagentor
              31.8.2022, 11:51:12.761	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:51:12.762	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              31.8.2022, 11:51:12.762	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:51:22.760	[info ]: javascript.0 (612549) script.js.Garage: client timeout
              31.8.2022, 11:51:22.762	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
              31.8.2022, 11:51:22.762	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              

              Close:

              31.8.2022, 11:52:45.628	[info ]: javascript.0 (612549) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661939565627,"q":0,"from":"system.adapter.javascript.0","lc":1661939565627,"c":"script.js.Garage"})
              31.8.2022, 11:52:45.646	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:52:45.646	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:52:45.698	[info ]: javascript.0 (612549) script.js.Garage: client received: R;OK
              for device: Garagentor
              31.8.2022, 11:52:45.699	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:52:45.699	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              31.8.2022, 11:52:45.699	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:52:46.144	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
              for device: Garagentor
              31.8.2022, 11:52:46.145	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
              31.8.2022, 11:52:46.145	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              31.8.2022, 11:52:46.146	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=10000)
              31.8.2022, 11:52:56.144	[info ]: javascript.0 (612549) script.js.Garage: client timeout
              31.8.2022, 11:52:56.145	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
              31.8.2022, 11:52:56.145	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
              

              @oliverio sagte in Benötige Programmierhilfe Javascript:

              Darüber hinaus kommt nur einmal "closing" und sonst nix. wenn dann wollen wir ja nach einer weile zumindest wissen das dann tatsächlich closed ist

              Ja stimmt, die Bestätigung der Endlagen kommt nichtmehr an. Mit dem neuen Code auch nicht.
              Auch die Datenpunkte bleiben leer.

              Nach dem Schließen bleibt die Lampe noch drei Minuten an. Die Bestätigung des Ausschaltens kommt jetzt auch nicht mehr an.

              Soll ich verbose jetzt weiter aktiviert lassen oder nicht?

              Danke vorab!

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #38

              @rushmed

              ja, 2 Probleme haben wir noch.

              1. der Vergleich zwischen
                S;Gagentor;opening
                und
                S;Gagentor;opening

              schlägt fehl, ob die beiden gleich sind.

              1. die Rückmeldung für den Abschluss der Aktion fehlt noch.
                Wenn du sagst, das Licht bleibt noch 3 Minuten an, dann setzen wir den Timeout mal auf 4 Minuten,
                Ersetze bitte die folgenden 2 Zeilen
              var timeout = 10000;                           //timeout für Antwort vom Server
              var time2termination = 10000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
              

              mit

              var timeout = 4*60*1000;                           //timeout für Antwort vom Server
              var time2termination = 4*60*1000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
              

              Du musst dann auch 4 Minuten Warten bis die Aktion abgeschlossen ist.
              Auch nicht den javascript-adapter stoppen
              Am Schluss muss im Log immer

              client timeout
              client terminatorEnd

              stehen

              Leider hat dir der Support einfach nur die Schlüsselworte mitgeteilt, aber auch nix zum Kommunikationsverhalten, was das Gerät macht wenn der Befehl close oder open gegeben wird.
              Wird nur einmal opening gesendet, oder mehrfach?
              Wie kann man den Status abfragen ohne einen Befehl zu geben, steht leider auch nirgends

              Besser wäre eine API, bei der man Befehle geben kann und separat den Status abfragen kann,
              So ist man viel flexibler.
              Aber man sieht ja, das sie dir keine richtige API-Beschreibung gegeben haben, sondern nur die Befehlsauflistung.
              Du hast ja nach API-Beschreibung gefragt?

              verbose erst mal so lassen. das stört nicht und gibt aktuell eher mehr informationen aus dem skriptablauf

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              R 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @rushmed

                ja, 2 Probleme haben wir noch.

                1. der Vergleich zwischen
                  S;Gagentor;opening
                  und
                  S;Gagentor;opening

                schlägt fehl, ob die beiden gleich sind.

                1. die Rückmeldung für den Abschluss der Aktion fehlt noch.
                  Wenn du sagst, das Licht bleibt noch 3 Minuten an, dann setzen wir den Timeout mal auf 4 Minuten,
                  Ersetze bitte die folgenden 2 Zeilen
                var timeout = 10000;                           //timeout für Antwort vom Server
                var time2termination = 10000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
                

                mit

                var timeout = 4*60*1000;                           //timeout für Antwort vom Server
                var time2termination = 4*60*1000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
                

                Du musst dann auch 4 Minuten Warten bis die Aktion abgeschlossen ist.
                Auch nicht den javascript-adapter stoppen
                Am Schluss muss im Log immer

                client timeout
                client terminatorEnd

                stehen

                Leider hat dir der Support einfach nur die Schlüsselworte mitgeteilt, aber auch nix zum Kommunikationsverhalten, was das Gerät macht wenn der Befehl close oder open gegeben wird.
                Wird nur einmal opening gesendet, oder mehrfach?
                Wie kann man den Status abfragen ohne einen Befehl zu geben, steht leider auch nirgends

                Besser wäre eine API, bei der man Befehle geben kann und separat den Status abfragen kann,
                So ist man viel flexibler.
                Aber man sieht ja, das sie dir keine richtige API-Beschreibung gegeben haben, sondern nur die Befehlsauflistung.
                Du hast ja nach API-Beschreibung gefragt?

                verbose erst mal so lassen. das stört nicht und gibt aktuell eher mehr informationen aus dem skriptablauf

                R Offline
                R Offline
                Rushmed
                Most Active
                schrieb am zuletzt editiert von
                #39

                @oliverio Zu1) Hast du da noch ne Idee? Ansonsten eürde es mir reichen wenn opening, closing, closed, lighton und lightoff in einem Datenpunkt landen. Dann werte ich die Status mit Blockly selber aus.

                zu2) Habe das halboffene Tor zugefahren, lightoff kam an.

                31.8.2022, 19:27:24.317	[info ]: javascript.0 (612549) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661966844317,"q":0,"from":"system.adapter.javascript.0","lc":1661966844317,"c":"script.js.Garage"})
                31.8.2022, 19:27:24.331	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.332	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.380	[info ]: javascript.0 (612549) script.js.Garage: client received: R;OK
                for device: Garagentor
                31.8.2022, 19:27:24.380	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.380	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.381	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.608	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
                for device: Garagentor
                31.8.2022, 19:27:24.609	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.609	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.609	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.610	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
                for device: Garagentor
                31.8.2022, 19:27:24.610	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.610	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.611	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.611	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
                for device: Garagentor
                31.8.2022, 19:27:24.612	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.612	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.612	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.672	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
                for device: Garagentor
                31.8.2022, 19:27:24.672	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.673	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.673	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
                for device: Garagentor
                31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:24.675	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
                for device: Garagentor
                31.8.2022, 19:27:24.675	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:24.675	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:24.676	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:35.420	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closed
                for device: Garagentor
                31.8.2022, 19:27:35.421	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:35.421	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:35.421	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:35.422	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closed
                for device: Garagentor
                31.8.2022, 19:27:35.423	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:35.423	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:35.423	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closed
                for device: Garagentor
                31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:30:34.088	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOff
                for device: Garagentor
                31.8.2022, 19:30:34.089	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:30:34.089	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:30:34.089	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:30:34.090	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOff
                for device: Garagentor
                31.8.2022, 19:30:34.090	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:30:34.090	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:30:34.091	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:30:34.091	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOff
                for device: Garagentor
                31.8.2022, 19:30:34.092	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                31.8.2022, 19:30:34.092	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:30:34.092	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                31.8.2022, 19:34:34.088	[info ]: javascript.0 (612549) script.js.Garage: client timeout
                31.8.2022, 19:34:34.089	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
                31.8.2022, 19:34:34.089	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:34:34.090	[info ]: javascript.0 (612549) script.js.Garage: client timeout
                31.8.2022, 19:34:34.090	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
                31.8.2022, 19:34:34.090	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                31.8.2022, 19:34:34.092	[info ]: javascript.0 (612549) script.js.Garage: client timeout
                31.8.2022, 19:34:34.092	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
                31.8.2022, 19:34:34.092	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                

                zu3) Nein ich habe nicht nach API gefragt. Ich wollte eine Anleitung zur Integration, sowie eine Liste möglicher Befehle.
                Ich frage da nochmal nach, aber die Antwort wird lange dauern.

                Können wir bitte die Antwort von R; in einem DP ausgeben? Wäre aber nur nice to have und eigentlich nur bei der Einrichtung eines Antriebs interessant.

                OliverIOO 1 Antwort Letzte Antwort
                0
                • R Rushmed

                  @oliverio Zu1) Hast du da noch ne Idee? Ansonsten eürde es mir reichen wenn opening, closing, closed, lighton und lightoff in einem Datenpunkt landen. Dann werte ich die Status mit Blockly selber aus.

                  zu2) Habe das halboffene Tor zugefahren, lightoff kam an.

                  31.8.2022, 19:27:24.317	[info ]: javascript.0 (612549) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1661966844317,"q":0,"from":"system.adapter.javascript.0","lc":1661966844317,"c":"script.js.Garage"})
                  31.8.2022, 19:27:24.331	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.332	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.380	[info ]: javascript.0 (612549) script.js.Garage: client received: R;OK
                  for device: Garagentor
                  31.8.2022, 19:27:24.380	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.380	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.381	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.608	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
                  for device: Garagentor
                  31.8.2022, 19:27:24.609	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.609	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.609	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.610	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
                  for device: Garagentor
                  31.8.2022, 19:27:24.610	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.610	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.611	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.611	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closing
                  for device: Garagentor
                  31.8.2022, 19:27:24.612	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.612	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.612	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.672	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
                  for device: Garagentor
                  31.8.2022, 19:27:24.672	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.673	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.673	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
                  for device: Garagentor
                  31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.674	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:24.675	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOn
                  for device: Garagentor
                  31.8.2022, 19:27:24.675	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:24.675	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:24.676	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:35.420	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closed
                  for device: Garagentor
                  31.8.2022, 19:27:35.421	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:35.421	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:35.421	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:35.422	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closed
                  for device: Garagentor
                  31.8.2022, 19:27:35.423	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:35.423	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:35.423	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;closed
                  for device: Garagentor
                  31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:27:35.424	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:30:34.088	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOff
                  for device: Garagentor
                  31.8.2022, 19:30:34.089	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:30:34.089	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:30:34.089	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:30:34.090	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOff
                  for device: Garagentor
                  31.8.2022, 19:30:34.090	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:30:34.090	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:30:34.091	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:30:34.091	[info ]: javascript.0 (612549) script.js.Garage: client received: S;Garagentor;lightOff
                  for device: Garagentor
                  31.8.2022, 19:30:34.092	[info ]: javascript.0 (612549) script.js.Garage: client terminatorStart
                  31.8.2022, 19:30:34.092	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:30:34.092	[info ]: javascript.0 (612549) script.js.Garage: setTimeout(ms=240000)
                  31.8.2022, 19:34:34.088	[info ]: javascript.0 (612549) script.js.Garage: client timeout
                  31.8.2022, 19:34:34.089	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
                  31.8.2022, 19:34:34.089	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:34:34.090	[info ]: javascript.0 (612549) script.js.Garage: client timeout
                  31.8.2022, 19:34:34.090	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
                  31.8.2022, 19:34:34.090	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  31.8.2022, 19:34:34.092	[info ]: javascript.0 (612549) script.js.Garage: client timeout
                  31.8.2022, 19:34:34.092	[info ]: javascript.0 (612549) script.js.Garage: client terminatorEnd
                  31.8.2022, 19:34:34.092	[info ]: javascript.0 (612549) script.js.Garage: clearTimeout() => cleared
                  

                  zu3) Nein ich habe nicht nach API gefragt. Ich wollte eine Anleitung zur Integration, sowie eine Liste möglicher Befehle.
                  Ich frage da nochmal nach, aber die Antwort wird lange dauern.

                  Können wir bitte die Antwort von R; in einem DP ausgeben? Wäre aber nur nice to have und eigentlich nur bei der Einrichtung eines Antriebs interessant.

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von OliverIO
                  #40

                  @rushmed

                  also von der Rückmeldung sind jetzt alle Informationen enthalten.
                  Auch wenn da wieder ein paar zuviele Abfragen gleichzeitig laufen (3 stück),
                  aber hier habe ich noch was gefunden an dem es gelegen haben könnte
                  bitte vor dem test den javascriptadapter einmal stoppen und wieder starten.

                  warum das
                  S;Gagentor;opening
                  nicht gleich
                  S;Gagentor;opening
                  ist

                  ich habe noch was entdeckt und einen zusätzlichen Befehl eingefügt. der sollte das Problem beheben

                  hat das letzte Schließen nur 11 Sekunden gedauert?

                  
                  
                  var net = require('net'); 
                  
                  var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
                  var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
                  var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
                  
                  var deviceName = "Garagentor";
                  var host = "192.168.178.149";
                  var port = 2785;
                  
                  function sendMessage(host, port, message) {
                  
                  var timeout = 4*60*1000;                           //timeout für Antwort vom Server
                  var time2termination = 4*60*1000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
                  var terminator;
                  var terminatorStart;
                  var terminatorEnd;
                  return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
                   var client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
                  
                   client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                     console.debug('cliend started');
                     terminatorStart();                        // Time starten, der die Verbindung beendet, falls keine Antwort mehr kommt
                     client.setTimeout(timeout);               // internes timeout setzen
                     client.write(message);                    // Nachricht an Gerät senden
                   });
                   
                   client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                     console.log('client received: x' + data + " for device: " + deviceName);
                     terminatorStart();                        // Den Timeout verlängern
                     var dataS = data.toString().trim();              // Datenbuffer in lesbaren Text umwandeln
                     switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                         case "S;"+deviceName+";open":         // wenn open
                         setState(dp_door,"open");             // dann Datenpunkt setzen
                         break;
                         case "S;"+deviceName+";closed":
                         setState(dp_door,"closed");
                         break;
                         case "S;"+deviceName+";opening":
                         setState(dp_door,"opening");
                         break;
                         case "S;"+deviceName+";closing":
                         setState(dp_door,"closing");
                         break;
                         case "S;"+deviceName+";lightOn":
                         setState(dp_light,"lightOn");
                         break;
                         case "S;"+deviceName+";lightOff":
                         setState(dp_light,"lightOff");
                         break;
                     }
                   });
                   client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                     console.log("client error");
                     terminatorEnd();                          // dann timeout beenden
                    client.end();                             // Kommunikation beenden
                     resolve(err);                             // und Fehlerdetails zurückgeben
                   });
                   client.on("timeout",()=>{                   // wenn timeout entsteht
                     console.log("client timeout");
                     terminatorEnd();                          // dann timeout beenden
                     client.end();                             // Kommunikation beenden
                     resolve("timeout");                       // text timeout zurückgeben
                   });
                   terminatorStart = function() {              // timeout starten oder verlängern
                     console.log("client terminatorStart");
                     if (terminator) clearTimeout(terminator); // evtl vorhanden timeout beenden
                     terminator = setTimeout(() => {           // neuen timeout starten. wenn timeout eintritt, dann folgende funktionen ausführen
                       console.log('cliend ended');
                       client.end();                           // kommunikation beenden
                       resolve("ok");                          // ok zurückgeben
                     }, time2termination);                     // zeit für timeout angeben
                   };
                   terminatorEnd = function() {                // timeout beenden
                     console.log("client terminatorEnd");
                     if (terminator) clearTimeout(terminator);      
                     client.end();  
                   };
                  });
                  }
                  on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
                   var cmd;
                   if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                       cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                       console.debug('execute command: ' + cmd);
                       switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                           case "open":                        // wenn open
                               sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                               break;
                           case "close":
                               sendMessage(host, port, "C;"+deviceName+";close");
                               break;
                           case "stop":
                               sendMessage(host, port, "C;"+deviceName+";stop");
                               break;
                           case "lighton":
                               sendMessage(host, port, "C;"+deviceName+";lightOn");
                               break;
                           case "lightoff":
                               sendMessage(host, port, "C;"+deviceName+";lightOff");
                               break;
                       }
                       setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
                   }
                  });
                  
                  
                  

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  R 1 Antwort Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @rushmed

                    also von der Rückmeldung sind jetzt alle Informationen enthalten.
                    Auch wenn da wieder ein paar zuviele Abfragen gleichzeitig laufen (3 stück),
                    aber hier habe ich noch was gefunden an dem es gelegen haben könnte
                    bitte vor dem test den javascriptadapter einmal stoppen und wieder starten.

                    warum das
                    S;Gagentor;opening
                    nicht gleich
                    S;Gagentor;opening
                    ist

                    ich habe noch was entdeckt und einen zusätzlichen Befehl eingefügt. der sollte das Problem beheben

                    hat das letzte Schließen nur 11 Sekunden gedauert?

                    
                    
                    var net = require('net'); 
                    
                    var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
                    var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
                    var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
                    
                    var deviceName = "Garagentor";
                    var host = "192.168.178.149";
                    var port = 2785;
                    
                    function sendMessage(host, port, message) {
                    
                    var timeout = 4*60*1000;                           //timeout für Antwort vom Server
                    var time2termination = 4*60*1000;                  //genereller Timeout falls gar keine Reaktion mehr kommt
                    var terminator;
                    var terminatorStart;
                    var terminatorEnd;
                    return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
                     var client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
                    
                     client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                       console.debug('cliend started');
                       terminatorStart();                        // Time starten, der die Verbindung beendet, falls keine Antwort mehr kommt
                       client.setTimeout(timeout);               // internes timeout setzen
                       client.write(message);                    // Nachricht an Gerät senden
                     });
                     
                     client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                       console.log('client received: x' + data + " for device: " + deviceName);
                       terminatorStart();                        // Den Timeout verlängern
                       var dataS = data.toString().trim();              // Datenbuffer in lesbaren Text umwandeln
                       switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                           case "S;"+deviceName+";open":         // wenn open
                           setState(dp_door,"open");             // dann Datenpunkt setzen
                           break;
                           case "S;"+deviceName+";closed":
                           setState(dp_door,"closed");
                           break;
                           case "S;"+deviceName+";opening":
                           setState(dp_door,"opening");
                           break;
                           case "S;"+deviceName+";closing":
                           setState(dp_door,"closing");
                           break;
                           case "S;"+deviceName+";lightOn":
                           setState(dp_light,"lightOn");
                           break;
                           case "S;"+deviceName+";lightOff":
                           setState(dp_light,"lightOff");
                           break;
                       }
                     });
                     client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                       console.log("client error");
                       terminatorEnd();                          // dann timeout beenden
                      client.end();                             // Kommunikation beenden
                       resolve(err);                             // und Fehlerdetails zurückgeben
                     });
                     client.on("timeout",()=>{                   // wenn timeout entsteht
                       console.log("client timeout");
                       terminatorEnd();                          // dann timeout beenden
                       client.end();                             // Kommunikation beenden
                       resolve("timeout");                       // text timeout zurückgeben
                     });
                     terminatorStart = function() {              // timeout starten oder verlängern
                       console.log("client terminatorStart");
                       if (terminator) clearTimeout(terminator); // evtl vorhanden timeout beenden
                       terminator = setTimeout(() => {           // neuen timeout starten. wenn timeout eintritt, dann folgende funktionen ausführen
                         console.log('cliend ended');
                         client.end();                           // kommunikation beenden
                         resolve("ok");                          // ok zurückgeben
                       }, time2termination);                     // zeit für timeout angeben
                     };
                     terminatorEnd = function() {                // timeout beenden
                       console.log("client terminatorEnd");
                       if (terminator) clearTimeout(terminator);      
                       client.end();  
                     };
                    });
                    }
                    on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
                     var cmd;
                     if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                         cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                         console.debug('execute command: ' + cmd);
                         switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                             case "open":                        // wenn open
                                 sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                                 break;
                             case "close":
                                 sendMessage(host, port, "C;"+deviceName+";close");
                                 break;
                             case "stop":
                                 sendMessage(host, port, "C;"+deviceName+";stop");
                                 break;
                             case "lighton":
                                 sendMessage(host, port, "C;"+deviceName+";lightOn");
                                 break;
                             case "lightoff":
                                 sendMessage(host, port, "C;"+deviceName+";lightOff");
                                 break;
                         }
                         setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
                     }
                    });
                    
                    
                    

                    R Offline
                    R Offline
                    Rushmed
                    Most Active
                    schrieb am zuletzt editiert von Rushmed
                    #41

                    @oliverio

                    lightOn:

                    1.9.2022, 05:57:50.085	[info ]: javascript.0 (1403834) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662004670085,"q":0,"from":"system.adapter.javascript.0","lc":1662004670085,"c":"script.js.Garage"})
                    1.9.2022, 05:57:50.099	[info ]: javascript.0 (1403834) script.js.Garage: client terminatorStart
                    1.9.2022, 05:57:50.100	[info ]: javascript.0 (1403834) script.js.Garage: setTimeout(ms=240000)
                    1.9.2022, 05:57:50.151	[info ]: javascript.0 (1403834) script.js.Garage: client received: xR;OK
                    for device: Garagentor
                    1.9.2022, 05:57:50.152	[info ]: javascript.0 (1403834) script.js.Garage: client terminatorStart
                    1.9.2022, 05:57:50.152	[info ]: javascript.0 (1403834) script.js.Garage: clearTimeout() => cleared
                    1.9.2022, 05:57:50.152	[info ]: javascript.0 (1403834) script.js.Garage: setTimeout(ms=240000)
                    1.9.2022, 05:57:50.317	[info ]: javascript.0 (1403834) script.js.Garage: client received: xS;Garagentor;lightOn
                    for device: Garagentor
                    1.9.2022, 05:57:50.318	[info ]: javascript.0 (1403834) script.js.Garage: client terminatorStart
                    1.9.2022, 05:57:50.318	[info ]: javascript.0 (1403834) script.js.Garage: clearTimeout() => cleared
                    1.9.2022, 05:57:50.319	[info ]: javascript.0 (1403834) script.js.Garage: setTimeout(ms=240000)
                    1.9.2022, 05:57:50.319	[info ]: javascript.0 (1403834) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662004670319,"q":0,"from":"system.adapter.javascript.0","lc":1662004670319,"c":"script.js.Garage"})
                    

                    Open und Close sahen auch gut aus, hab aber erst heut abend Zeit um zu warten bis dasa licht aus geht.

                    Die Datenpunkte werden beschrieben. Super!

                    @rushmed sagte in Benötige Programmierhilfe Javascript:

                    zu2) Habe das halboffene Tor zugefahren, lightoff kam an.

                    Deswegen hat das Schließen weniger lange gedauert als sonst.

                    Warum war denn jetzt S;Gagentor;opening ungleich S;Gagentor;opening?

                    Ist es noch möglich Antworten von manuellen Eingaben (App, Fernbedienung und am Antrieb direkt) die nach time2termination passieren?

                    1 Antwort Letzte Antwort
                    0
                    • OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #42

                      @rushmed

                      code nochmal umgestellt.
                      der client-dienst läuft jetzt solange das skript läuft
                      mit der Funktion send Message kannst du wie gehabt die Nachrichten senden
                      der client-dienst wird beendet, sobald das skript gestoppt wird
                      theoretisch müsste der client dienst nun auf alle nachrichten hören, die das garagentor sendet.
                      einen timeout gibt es nicht mehr, ausser das garagentor sendet, das ende ist. aber das hatten wir bisher noch nicht gesehen

                      @rushmed sagte in Benötige Programmierhilfe Javascript:

                      Warum war denn jetzt S;Gagentor;opening ungleich S;Gagentor;opening?

                      Am Ende der Nachricht hat noch ein Zeilenumbruch gehangen. Das ist mir in den Lognachrichten entgangen. Der trim-Befehl filtert diese Zeichen dann raus.
                      Daher
                      S;Gagentor;opening\n ungleich S;Gagentor;opening

                      \n ist eine Notation für die nicht sichtbaren Steuerzeichen, hier newline

                      
                      
                      var net = require('net'); 
                      
                      var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
                      var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
                      var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
                      
                      var deviceName = "Garagentor";
                      var host = "192.168.178.149";
                      var port = 2785;
                      
                      var client;
                      
                      function startClient() {
                          client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
                          client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                              console.log('cliend started');
                          });
                          client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                              console.log('client received: ' + data + " for device: " + deviceName);
                              var dataS = data.toString().trim();              // Datenbuffer in lesbaren Text umwandeln
                              switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                                  case "S;"+deviceName+";open":         // wenn open
                                      setState(dp_door,"open");             // dann Datenpunkt setzen
                                      break;
                                  case "S;"+deviceName+";closed":
                                      setState(dp_door,"closed");
                                      break;
                                  case "S;"+deviceName+";opening":
                                      setState(dp_door,"opening");
                                      break;
                                  case "S;"+deviceName+";closing":
                                      setState(dp_door,"closing");
                                      break;
                                  case "S;"+deviceName+";lightOn":
                                      setState(dp_light,"lightOn");
                                      break;
                                  case "S;"+deviceName+";lightOff":
                                      setState(dp_light,"lightOff");
                                      break;
                              }
                          });
                          client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                              console.log("client error " + err.toString());
                          });
                          client.on("timeout",()=>{                   // wenn timeout entsteht
                              console.log("client timeout");
                          });
                      }
                      
                      function sendMessage(host, port, message) {
                          return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
                              if (!client) {
                                  console.log("No Client available");
                                  resolve("Error");
                                  return;
                              }
                              client.write(message);
                              resolve("OK");
                          });
                      }
                      
                      onStop (function(){
                           /* do something when script is stopped */
                           if (client) {
                              console.log('client ended ');
                              client.end();
                           }
                      }, 1000);
                      
                      startClient();
                      
                      on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
                       var cmd;
                       if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                           cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                           console.log('execute command: ' + cmd);
                           switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                               case "open":                        // wenn open
                                   sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                                   break;
                               case "close":
                                   sendMessage(host, port, "C;"+deviceName+";close");
                                   break;
                               case "stop":
                                   sendMessage(host, port, "C;"+deviceName+";stop");
                                   break;
                               case "lighton":
                                   sendMessage(host, port, "C;"+deviceName+";lightOn");
                                   break;
                               case "lightoff":
                                   sendMessage(host, port, "C;"+deviceName+";lightOff");
                                   break;
                           }
                           setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
                       }
                      });
                      
                      

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      R 1 Antwort Letzte Antwort
                      0
                      • OliverIOO OliverIO

                        @rushmed

                        code nochmal umgestellt.
                        der client-dienst läuft jetzt solange das skript läuft
                        mit der Funktion send Message kannst du wie gehabt die Nachrichten senden
                        der client-dienst wird beendet, sobald das skript gestoppt wird
                        theoretisch müsste der client dienst nun auf alle nachrichten hören, die das garagentor sendet.
                        einen timeout gibt es nicht mehr, ausser das garagentor sendet, das ende ist. aber das hatten wir bisher noch nicht gesehen

                        @rushmed sagte in Benötige Programmierhilfe Javascript:

                        Warum war denn jetzt S;Gagentor;opening ungleich S;Gagentor;opening?

                        Am Ende der Nachricht hat noch ein Zeilenumbruch gehangen. Das ist mir in den Lognachrichten entgangen. Der trim-Befehl filtert diese Zeichen dann raus.
                        Daher
                        S;Gagentor;opening\n ungleich S;Gagentor;opening

                        \n ist eine Notation für die nicht sichtbaren Steuerzeichen, hier newline

                        
                        
                        var net = require('net'); 
                        
                        var dp_door = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor"; //door state
                        var dp_light = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht"; //light state
                        var dp_cmd = "0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
                        
                        var deviceName = "Garagentor";
                        var host = "192.168.178.149";
                        var port = 2785;
                        
                        var client;
                        
                        function startClient() {
                            client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
                            client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                                console.log('cliend started');
                            });
                            client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                                console.log('client received: ' + data + " for device: " + deviceName);
                                var dataS = data.toString().trim();              // Datenbuffer in lesbaren Text umwandeln
                                switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                                    case "S;"+deviceName+";open":         // wenn open
                                        setState(dp_door,"open");             // dann Datenpunkt setzen
                                        break;
                                    case "S;"+deviceName+";closed":
                                        setState(dp_door,"closed");
                                        break;
                                    case "S;"+deviceName+";opening":
                                        setState(dp_door,"opening");
                                        break;
                                    case "S;"+deviceName+";closing":
                                        setState(dp_door,"closing");
                                        break;
                                    case "S;"+deviceName+";lightOn":
                                        setState(dp_light,"lightOn");
                                        break;
                                    case "S;"+deviceName+";lightOff":
                                        setState(dp_light,"lightOff");
                                        break;
                                }
                            });
                            client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                                console.log("client error " + err.toString());
                            });
                            client.on("timeout",()=>{                   // wenn timeout entsteht
                                console.log("client timeout");
                            });
                        }
                        
                        function sendMessage(host, port, message) {
                            return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
                                if (!client) {
                                    console.log("No Client available");
                                    resolve("Error");
                                    return;
                                }
                                client.write(message);
                                resolve("OK");
                            });
                        }
                        
                        onStop (function(){
                             /* do something when script is stopped */
                             if (client) {
                                console.log('client ended ');
                                client.end();
                             }
                        }, 1000);
                        
                        startClient();
                        
                        on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
                         var cmd;
                         if (!obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                             cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                             console.log('execute command: ' + cmd);
                             switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                                 case "open":                        // wenn open
                                     sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                                     break;
                                 case "close":
                                     sendMessage(host, port, "C;"+deviceName+";close");
                                     break;
                                 case "stop":
                                     sendMessage(host, port, "C;"+deviceName+";stop");
                                     break;
                                 case "lighton":
                                     sendMessage(host, port, "C;"+deviceName+";lightOn");
                                     break;
                                 case "lightoff":
                                     sendMessage(host, port, "C;"+deviceName+";lightOff");
                                     break;
                             }
                             setState(obj.id, {val: "", ack: true}); // datenpunkt auf leer als bestätigt setzen
                         }
                        });
                        
                        
                        R Offline
                        R Offline
                        Rushmed
                        Most Active
                        schrieb am zuletzt editiert von
                        #43

                        @oliverio Ok, danke.
                        Ich würde heute Abend dann alle mögliche Szenarien durchtesten. Benötigst du noch Logs oder soll ich etwas bestimmtes testen?

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • R Rushmed

                          @oliverio Ok, danke.
                          Ich würde heute Abend dann alle mögliche Szenarien durchtesten. Benötigst du noch Logs oder soll ich etwas bestimmtes testen?

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #44

                          @rushmed
                          ne erst mal nicht, ausser es passiert etwas besonderes.

                          bitte mal auch skript mehrmals starten und stoppen und dann schauen wieviele gleiche nachrichten kommen.

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          R 1 Antwort Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @rushmed
                            ne erst mal nicht, ausser es passiert etwas besonderes.

                            bitte mal auch skript mehrmals starten und stoppen und dann schauen wieviele gleiche nachrichten kommen.

                            R Offline
                            R Offline
                            Rushmed
                            Most Active
                            schrieb am zuletzt editiert von Rushmed
                            #45

                            @oliverio Das läuft soweit klasse, supervielen Dank!
                            Nach Script Neustart, aus und an Schalten kann ich doppelte aber bisher auch nur doppelte Rückmeldungen provozieren.

                            1.9.2022, 20:09:07.380	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                            1.9.2022, 20:09:07.382	[info ]: javascript.0 (1961154) script.js.Garage: client ended 
                            1.9.2022, 20:09:08.366	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                            1.9.2022, 20:09:08.404	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                            1.9.2022, 20:09:08.407	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                            1.9.2022, 20:09:08.408	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                            1.9.2022, 20:09:08.424	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                            1.9.2022, 20:09:22.539	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                            1.9.2022, 20:09:22.540	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055762540,"q":0,"from":"system.adapter.javascript.0","lc":1662055762540,"c":"script.js.Garage"})
                            1.9.2022, 20:09:22.586	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:09:22.872	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:09:22.873	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055762873,"q":0,"from":"system.adapter.javascript.0","lc":1662055762873,"c":"script.js.Garage"})
                            1.9.2022, 20:09:39.711	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                            1.9.2022, 20:09:39.777	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                            1.9.2022, 20:09:39.826	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                            1.9.2022, 20:09:39.828	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                            1.9.2022, 20:09:39.828	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                            1.9.2022, 20:09:39.841	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                            1.9.2022, 20:10:14.468	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                            1.9.2022, 20:10:14.469	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055814469,"q":0,"from":"system.adapter.javascript.0","lc":1662055814469,"c":"script.js.Garage"})
                            1.9.2022, 20:10:14.470	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                            1.9.2022, 20:10:14.472	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055814471,"q":0,"from":"system.adapter.javascript.0","lc":1662055814469,"c":"script.js.Garage"})
                            1.9.2022, 20:10:14.525	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:10:14.552	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:10:15.732	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:10:15.733	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055815733,"q":0,"from":"system.adapter.javascript.0","lc":1662055815733,"c":"script.js.Garage"})
                            1.9.2022, 20:10:15.734	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:10:15.737	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055815737,"q":0,"from":"system.adapter.javascript.0","lc":1662055815733,"c":"script.js.Garage"})
                            1.9.2022, 20:10:26.293	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                            1.9.2022, 20:10:26.295	[info ]: javascript.0 (1961154) script.js.Garage: client ended 
                            1.9.2022, 20:10:27.303	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                            1.9.2022, 20:10:27.308	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                            1.9.2022, 20:10:27.309	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                            1.9.2022, 20:10:27.309	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                            1.9.2022, 20:10:27.319	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                            1.9.2022, 20:10:35.826	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                            1.9.2022, 20:10:35.828	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055835828,"q":0,"from":"system.adapter.javascript.0","lc":1662055835828,"c":"script.js.Garage"})
                            1.9.2022, 20:10:36.069	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:10:36.286	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:10:36.287	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055836287,"q":0,"from":"system.adapter.javascript.0","lc":1662055836287,"c":"script.js.Garage"})
                            1.9.2022, 20:10:36.287	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:10:36.288	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055836288,"q":0,"from":"system.adapter.javascript.0","lc":1662055836287,"c":"script.js.Garage"})
                            1.9.2022, 20:10:55.516	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                            1.9.2022, 20:10:55.516	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055855516,"q":0,"from":"system.adapter.javascript.0","lc":1662055855516,"c":"script.js.Garage"})
                            1.9.2022, 20:10:55.558	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:10:56.676	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:10:56.677	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055856677,"q":0,"from":"system.adapter.javascript.0","lc":1662055856677,"c":"script.js.Garage"})
                            1.9.2022, 20:10:56.678	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:10:56.678	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055856678,"q":0,"from":"system.adapter.javascript.0","lc":1662055856677,"c":"script.js.Garage"})
                            1.9.2022, 20:11:17.185	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                            1.9.2022, 20:11:17.187	[info ]: javascript.0 (1961154) script.js.Garage: client ended 
                            1.9.2022, 20:11:21.690	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                            1.9.2022, 20:11:21.695	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                            1.9.2022, 20:11:21.696	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                            1.9.2022, 20:11:21.696	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                            1.9.2022, 20:11:21.705	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                            1.9.2022, 20:11:30.967	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                            1.9.2022, 20:11:30.968	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055890968,"q":0,"from":"system.adapter.javascript.0","lc":1662055890968,"c":"script.js.Garage"})
                            1.9.2022, 20:11:31.081	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:11:46.199	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                            1.9.2022, 20:11:46.200	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055906200,"q":0,"from":"system.adapter.javascript.0","lc":1662055906200,"c":"script.js.Garage"})
                            1.9.2022, 20:11:46.244	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:11:46.486	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:11:46.487	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055906487,"q":0,"from":"system.adapter.javascript.0","lc":1662055906487,"c":"script.js.Garage"})
                            1.9.2022, 20:11:46.487	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:11:46.488	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055906488,"q":0,"from":"system.adapter.javascript.0","lc":1662055906487,"c":"script.js.Garage"})
                            1.9.2022, 20:12:16.341	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                            1.9.2022, 20:12:16.342	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055936342,"q":0,"from":"system.adapter.javascript.0","lc":1662055936342,"c":"script.js.Garage"})
                            1.9.2022, 20:12:16.401	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                            for device: Garagentor
                            1.9.2022, 20:12:38.113	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:12:38.114	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055958114,"q":0,"from":"system.adapter.javascript.0","lc":1662055958114,"c":"script.js.Garage"})
                            1.9.2022, 20:12:38.114	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:12:38.115	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055958115,"q":0,"from":"system.adapter.javascript.0","lc":1662055958114,"c":"script.js.Garage"})
                            1.9.2022, 20:12:44.504	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:12:44.505	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055964505,"q":0,"from":"system.adapter.javascript.0","lc":1662055964505,"c":"script.js.Garage"})
                            1.9.2022, 20:12:44.505	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:12:44.506	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055964506,"q":0,"from":"system.adapter.javascript.0","lc":1662055964505,"c":"script.js.Garage"})
                            1.9.2022, 20:12:46.161	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:12:46.162	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055966162,"q":0,"from":"system.adapter.javascript.0","lc":1662055966162,"c":"script.js.Garage"})
                            1.9.2022, 20:12:46.163	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:12:46.164	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055966163,"q":0,"from":"system.adapter.javascript.0","lc":1662055966162,"c":"script.js.Garage"})
                            1.9.2022, 20:12:56.426	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;opening
                            for device: Garagentor
                            1.9.2022, 20:12:56.426	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"opening","ack":false,"ts":1662055976426,"q":0,"from":"system.adapter.javascript.0","lc":1662055976426,"c":"script.js.Garage"})
                            1.9.2022, 20:12:56.427	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;opening
                            for device: Garagentor
                            1.9.2022, 20:12:56.427	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"opening","ack":false,"ts":1662055976427,"q":0,"from":"system.adapter.javascript.0","lc":1662055976426,"c":"script.js.Garage"})
                            1.9.2022, 20:12:56.502	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:12:56.502	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055976502,"q":0,"from":"system.adapter.javascript.0","lc":1662055976502,"c":"script.js.Garage"})
                            1.9.2022, 20:12:56.507	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                            for device: Garagentor
                            1.9.2022, 20:12:56.508	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055976508,"q":0,"from":"system.adapter.javascript.0","lc":1662055976502,"c":"script.js.Garage"})
                            1.9.2022, 20:13:12.637	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closing
                            for device: Garagentor
                            1.9.2022, 20:13:12.638	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closing","ack":false,"ts":1662055992638,"q":0,"from":"system.adapter.javascript.0","lc":1662055992638,"c":"script.js.Garage"})
                            1.9.2022, 20:13:12.639	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closing
                            for device: Garagentor
                            1.9.2022, 20:13:12.640	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closing","ack":false,"ts":1662055992639,"q":0,"from":"system.adapter.javascript.0","lc":1662055992638,"c":"script.js.Garage"})
                            1.9.2022, 20:13:13.538	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closed
                            for device: Garagentor
                            1.9.2022, 20:13:13.538	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closed","ack":false,"ts":1662055993538,"q":0,"from":"system.adapter.javascript.0","lc":1662055993538,"c":"script.js.Garage"})
                            1.9.2022, 20:13:13.539	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closed
                            for device: Garagentor
                            1.9.2022, 20:13:13.539	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closed","ack":false,"ts":1662055993539,"q":0,"from":"system.adapter.javascript.0","lc":1662055993538,"c":"script.js.Garage"})
                            1.9.2022, 20:16:12.242	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:16:12.242	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662056172242,"q":0,"from":"system.adapter.javascript.0","lc":1662056172242,"c":"script.js.Garage"})
                            1.9.2022, 20:16:12.243	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                            for device: Garagentor
                            1.9.2022, 20:16:12.243	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662056172243,"q":0,"from":"system.adapter.javascript.0","lc":1662056172242,"c":"script.js.Garage"})
                            

                            Kannst du bitte noch diese Meldungen noch aus dem Log entfernen:

                            javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055976502,"q":0,"from":"system.adapter.javascript.0","lc":1662055976502,"c":"script.js.Garage"})
                            
                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • R Rushmed

                              @oliverio Das läuft soweit klasse, supervielen Dank!
                              Nach Script Neustart, aus und an Schalten kann ich doppelte aber bisher auch nur doppelte Rückmeldungen provozieren.

                              1.9.2022, 20:09:07.380	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                              1.9.2022, 20:09:07.382	[info ]: javascript.0 (1961154) script.js.Garage: client ended 
                              1.9.2022, 20:09:08.366	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                              1.9.2022, 20:09:08.404	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                              1.9.2022, 20:09:08.407	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                              1.9.2022, 20:09:08.408	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              1.9.2022, 20:09:08.424	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                              1.9.2022, 20:09:22.539	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                              1.9.2022, 20:09:22.540	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055762540,"q":0,"from":"system.adapter.javascript.0","lc":1662055762540,"c":"script.js.Garage"})
                              1.9.2022, 20:09:22.586	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:09:22.872	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:09:22.873	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055762873,"q":0,"from":"system.adapter.javascript.0","lc":1662055762873,"c":"script.js.Garage"})
                              1.9.2022, 20:09:39.711	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                              1.9.2022, 20:09:39.777	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                              1.9.2022, 20:09:39.826	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                              1.9.2022, 20:09:39.828	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                              1.9.2022, 20:09:39.828	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              1.9.2022, 20:09:39.841	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                              1.9.2022, 20:10:14.468	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                              1.9.2022, 20:10:14.469	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055814469,"q":0,"from":"system.adapter.javascript.0","lc":1662055814469,"c":"script.js.Garage"})
                              1.9.2022, 20:10:14.470	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                              1.9.2022, 20:10:14.472	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055814471,"q":0,"from":"system.adapter.javascript.0","lc":1662055814469,"c":"script.js.Garage"})
                              1.9.2022, 20:10:14.525	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:10:14.552	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:10:15.732	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:10:15.733	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055815733,"q":0,"from":"system.adapter.javascript.0","lc":1662055815733,"c":"script.js.Garage"})
                              1.9.2022, 20:10:15.734	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:10:15.737	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055815737,"q":0,"from":"system.adapter.javascript.0","lc":1662055815733,"c":"script.js.Garage"})
                              1.9.2022, 20:10:26.293	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                              1.9.2022, 20:10:26.295	[info ]: javascript.0 (1961154) script.js.Garage: client ended 
                              1.9.2022, 20:10:27.303	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                              1.9.2022, 20:10:27.308	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                              1.9.2022, 20:10:27.309	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                              1.9.2022, 20:10:27.309	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              1.9.2022, 20:10:27.319	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                              1.9.2022, 20:10:35.826	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                              1.9.2022, 20:10:35.828	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055835828,"q":0,"from":"system.adapter.javascript.0","lc":1662055835828,"c":"script.js.Garage"})
                              1.9.2022, 20:10:36.069	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:10:36.286	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:10:36.287	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055836287,"q":0,"from":"system.adapter.javascript.0","lc":1662055836287,"c":"script.js.Garage"})
                              1.9.2022, 20:10:36.287	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:10:36.288	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055836288,"q":0,"from":"system.adapter.javascript.0","lc":1662055836287,"c":"script.js.Garage"})
                              1.9.2022, 20:10:55.516	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                              1.9.2022, 20:10:55.516	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055855516,"q":0,"from":"system.adapter.javascript.0","lc":1662055855516,"c":"script.js.Garage"})
                              1.9.2022, 20:10:55.558	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:10:56.676	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:10:56.677	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055856677,"q":0,"from":"system.adapter.javascript.0","lc":1662055856677,"c":"script.js.Garage"})
                              1.9.2022, 20:10:56.678	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:10:56.678	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055856678,"q":0,"from":"system.adapter.javascript.0","lc":1662055856677,"c":"script.js.Garage"})
                              1.9.2022, 20:11:17.185	[info ]: javascript.0 (1961154) Stop script script.js.Garage
                              1.9.2022, 20:11:17.187	[info ]: javascript.0 (1961154) script.js.Garage: client ended 
                              1.9.2022, 20:11:21.690	[info ]: javascript.0 (1961154) Start javascript script.js.Garage
                              1.9.2022, 20:11:21.695	[info ]: javascript.0 (1961154) script.js.Garage: onStop(timeout=1000)
                              1.9.2022, 20:11:21.696	[info ]: javascript.0 (1961154) script.js.Garage: subscribe: {"pattern":{"id":"0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command","change":"ne","q":0},"name":"script.js.Garage"}
                              1.9.2022, 20:11:21.696	[info ]: javascript.0 (1961154) script.js.Garage: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              1.9.2022, 20:11:21.705	[info ]: javascript.0 (1961154) script.js.Garage: cliend started
                              1.9.2022, 20:11:30.967	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lightoff
                              1.9.2022, 20:11:30.968	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055890968,"q":0,"from":"system.adapter.javascript.0","lc":1662055890968,"c":"script.js.Garage"})
                              1.9.2022, 20:11:31.081	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:11:46.199	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                              1.9.2022, 20:11:46.200	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055906200,"q":0,"from":"system.adapter.javascript.0","lc":1662055906200,"c":"script.js.Garage"})
                              1.9.2022, 20:11:46.244	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:11:46.486	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:11:46.487	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055906487,"q":0,"from":"system.adapter.javascript.0","lc":1662055906487,"c":"script.js.Garage"})
                              1.9.2022, 20:11:46.487	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:11:46.488	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055906488,"q":0,"from":"system.adapter.javascript.0","lc":1662055906487,"c":"script.js.Garage"})
                              1.9.2022, 20:12:16.341	[info ]: javascript.0 (1961154) script.js.Garage: execute command: lighton
                              1.9.2022, 20:12:16.342	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Command, state={"val":"","ack":true,"ts":1662055936342,"q":0,"from":"system.adapter.javascript.0","lc":1662055936342,"c":"script.js.Garage"})
                              1.9.2022, 20:12:16.401	[info ]: javascript.0 (1961154) script.js.Garage: client received: R;OK
                              for device: Garagentor
                              1.9.2022, 20:12:38.113	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:12:38.114	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055958114,"q":0,"from":"system.adapter.javascript.0","lc":1662055958114,"c":"script.js.Garage"})
                              1.9.2022, 20:12:38.114	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:12:38.115	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055958115,"q":0,"from":"system.adapter.javascript.0","lc":1662055958114,"c":"script.js.Garage"})
                              1.9.2022, 20:12:44.504	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:12:44.505	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055964505,"q":0,"from":"system.adapter.javascript.0","lc":1662055964505,"c":"script.js.Garage"})
                              1.9.2022, 20:12:44.505	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:12:44.506	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055964506,"q":0,"from":"system.adapter.javascript.0","lc":1662055964505,"c":"script.js.Garage"})
                              1.9.2022, 20:12:46.161	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:12:46.162	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055966162,"q":0,"from":"system.adapter.javascript.0","lc":1662055966162,"c":"script.js.Garage"})
                              1.9.2022, 20:12:46.163	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:12:46.164	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662055966163,"q":0,"from":"system.adapter.javascript.0","lc":1662055966162,"c":"script.js.Garage"})
                              1.9.2022, 20:12:56.426	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;opening
                              for device: Garagentor
                              1.9.2022, 20:12:56.426	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"opening","ack":false,"ts":1662055976426,"q":0,"from":"system.adapter.javascript.0","lc":1662055976426,"c":"script.js.Garage"})
                              1.9.2022, 20:12:56.427	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;opening
                              for device: Garagentor
                              1.9.2022, 20:12:56.427	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"opening","ack":false,"ts":1662055976427,"q":0,"from":"system.adapter.javascript.0","lc":1662055976426,"c":"script.js.Garage"})
                              1.9.2022, 20:12:56.502	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:12:56.502	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055976502,"q":0,"from":"system.adapter.javascript.0","lc":1662055976502,"c":"script.js.Garage"})
                              1.9.2022, 20:12:56.507	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOn
                              for device: Garagentor
                              1.9.2022, 20:12:56.508	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055976508,"q":0,"from":"system.adapter.javascript.0","lc":1662055976502,"c":"script.js.Garage"})
                              1.9.2022, 20:13:12.637	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closing
                              for device: Garagentor
                              1.9.2022, 20:13:12.638	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closing","ack":false,"ts":1662055992638,"q":0,"from":"system.adapter.javascript.0","lc":1662055992638,"c":"script.js.Garage"})
                              1.9.2022, 20:13:12.639	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closing
                              for device: Garagentor
                              1.9.2022, 20:13:12.640	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closing","ack":false,"ts":1662055992639,"q":0,"from":"system.adapter.javascript.0","lc":1662055992638,"c":"script.js.Garage"})
                              1.9.2022, 20:13:13.538	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closed
                              for device: Garagentor
                              1.9.2022, 20:13:13.538	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closed","ack":false,"ts":1662055993538,"q":0,"from":"system.adapter.javascript.0","lc":1662055993538,"c":"script.js.Garage"})
                              1.9.2022, 20:13:13.539	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;closed
                              for device: Garagentor
                              1.9.2022, 20:13:13.539	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Tor, state={"val":"closed","ack":false,"ts":1662055993539,"q":0,"from":"system.adapter.javascript.0","lc":1662055993538,"c":"script.js.Garage"})
                              1.9.2022, 20:16:12.242	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:16:12.242	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662056172242,"q":0,"from":"system.adapter.javascript.0","lc":1662056172242,"c":"script.js.Garage"})
                              1.9.2022, 20:16:12.243	[info ]: javascript.0 (1961154) script.js.Garage: client received: S;Garagentor;lightOff
                              for device: Garagentor
                              1.9.2022, 20:16:12.243	[info ]: javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOff","ack":false,"ts":1662056172243,"q":0,"from":"system.adapter.javascript.0","lc":1662056172242,"c":"script.js.Garage"})
                              

                              Kannst du bitte noch diese Meldungen noch aus dem Log entfernen:

                              javascript.0 (1961154) script.js.Garage: setForeignState(id=0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht, state={"val":"lightOn","ack":false,"ts":1662055976502,"q":0,"from":"system.adapter.javascript.0","lc":1662055976502,"c":"script.js.Garage"})
                              
                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von
                              #46

                              @rushmed
                              das ist die verbose Einstellung, oben rechts im skript
                              wenn du die ausmachst, dann kommt die nicht mehr

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              1 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                Rushmed
                                Most Active
                                schrieb am zuletzt editiert von
                                #47

                                @oliverio Ok, probiere ich aus.
                                Könnte man Licht auch als einen boolschen Datenpunkt anlegen über den sowohl manuell gesteuert als auch die Status der Lampe zurück gegeben werden?

                                Die Ausgabe von R; im LOG ist denke ich sinnvoll. Vor allem falls bei der ersten Einrichtung etwas schiefgeht. Vll. muss auch nicht R;OK in den LOG sondern nur die möglichen Fehler.

                                Anwort Bedeutung
                                Error: Invalid command Ungültiger Befehl
                                Error: Not enough parameters
                                Error: Unknown garage Garage ist nicht bekannt. Kontrollieren Sie den Namen der Garage in ihrer Smart Home Anwendung oder in der maveo app. 
                                

                                Ich kann den Command DP nicht mit InfluxDB loggen, die Datenreihe bleibt leer. Wir der Wert so schnell zurück gesetzt dass Influx das nicht mitbekommt?

                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • R Rushmed

                                  @oliverio Ok, probiere ich aus.
                                  Könnte man Licht auch als einen boolschen Datenpunkt anlegen über den sowohl manuell gesteuert als auch die Status der Lampe zurück gegeben werden?

                                  Die Ausgabe von R; im LOG ist denke ich sinnvoll. Vor allem falls bei der ersten Einrichtung etwas schiefgeht. Vll. muss auch nicht R;OK in den LOG sondern nur die möglichen Fehler.

                                  Anwort Bedeutung
                                  Error: Invalid command Ungültiger Befehl
                                  Error: Not enough parameters
                                  Error: Unknown garage Garage ist nicht bekannt. Kontrollieren Sie den Namen der Garage in ihrer Smart Home Anwendung oder in der maveo app. 
                                  

                                  Ich kann den Command DP nicht mit InfluxDB loggen, die Datenreihe bleibt leer. Wir der Wert so schnell zurück gesetzt dass Influx das nicht mitbekommt?

                                  OliverIOO Offline
                                  OliverIOO Offline
                                  OliverIO
                                  schrieb am zuletzt editiert von
                                  #48

                                  @rushmed said in Benötige Programmierhilfe Javascript:

                                  @oliverio Ok, probiere ich aus.
                                  Könnte man Licht auch als einen boolschen Datenpunkt anlegen über den sowohl manuell gesteuert als auch die Status der Lampe zurück gegeben werden?

                                  Theoretisch schon, aber du ja jetzt einen lesbaren Status
                                  und ein Vergleich auf == "LightOn" oder auf == true
                                  kommt auf das selbe heraus

                                  Die Ausgabe von R; im LOG ist denke ich sinnvoll. Vor allem falls bei der ersten Einrichtung etwas schiefgeht. Vll. muss auch nicht R;OK in den LOG sondern nur die möglichen Fehler.

                                  Da muss ich mal schauen. eigentlich wollte ich ja console.debug machen, aber das hat zu einem Fehler geführt. Gedacht war, das nicht zu viel im log erscheint, sondern nur wenn man das will.
                                  wenn du einzelne Nachrichten ausschalten willst, dann kannst du vor dem Befehle console.log
                                  das Kommentarzeichen // schreiben. Dann werden die Anweisungen nicht mehr ausgeführt

                                  Anwort Bedeutung
                                  Error: Invalid command Ungültiger Befehl
                                  Error: Not enough parameters
                                  Error: Unknown garage Garage ist nicht bekannt. Kontrollieren Sie den Namen der Garage in ihrer Smart Home Anwendung oder in der maveo app. 
                                  

                                  Ich kann den Command DP nicht mit InfluxDB loggen, die Datenreihe bleibt leer. Wir der Wert so schnell zurück gesetzt dass Influx das nicht mitbekommt?

                                  Nein, InfluxDB wird nur bestätigte Nachrichten aufzeichnen.
                                  Du schreibst den Befehl auch als unbestätigt rein. Musst du aber auch, der Trigger hört aktuell nur auf unbestätigte Nachrichten

                                  Meine Adapter und Widgets
                                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                  Links im Profil

                                  R 1 Antwort Letzte Antwort
                                  0
                                  • OliverIOO OliverIO

                                    @rushmed said in Benötige Programmierhilfe Javascript:

                                    @oliverio Ok, probiere ich aus.
                                    Könnte man Licht auch als einen boolschen Datenpunkt anlegen über den sowohl manuell gesteuert als auch die Status der Lampe zurück gegeben werden?

                                    Theoretisch schon, aber du ja jetzt einen lesbaren Status
                                    und ein Vergleich auf == "LightOn" oder auf == true
                                    kommt auf das selbe heraus

                                    Die Ausgabe von R; im LOG ist denke ich sinnvoll. Vor allem falls bei der ersten Einrichtung etwas schiefgeht. Vll. muss auch nicht R;OK in den LOG sondern nur die möglichen Fehler.

                                    Da muss ich mal schauen. eigentlich wollte ich ja console.debug machen, aber das hat zu einem Fehler geführt. Gedacht war, das nicht zu viel im log erscheint, sondern nur wenn man das will.
                                    wenn du einzelne Nachrichten ausschalten willst, dann kannst du vor dem Befehle console.log
                                    das Kommentarzeichen // schreiben. Dann werden die Anweisungen nicht mehr ausgeführt

                                    Anwort Bedeutung
                                    Error: Invalid command Ungültiger Befehl
                                    Error: Not enough parameters
                                    Error: Unknown garage Garage ist nicht bekannt. Kontrollieren Sie den Namen der Garage in ihrer Smart Home Anwendung oder in der maveo app. 
                                    

                                    Ich kann den Command DP nicht mit InfluxDB loggen, die Datenreihe bleibt leer. Wir der Wert so schnell zurück gesetzt dass Influx das nicht mitbekommt?

                                    Nein, InfluxDB wird nur bestätigte Nachrichten aufzeichnen.
                                    Du schreibst den Befehl auch als unbestätigt rein. Musst du aber auch, der Trigger hört aktuell nur auf unbestätigte Nachrichten

                                    R Offline
                                    R Offline
                                    Rushmed
                                    Most Active
                                    schrieb am zuletzt editiert von Rushmed
                                    #49

                                    @oliverio OK danke, verbose deaktiviert, funktioniert.

                                    @oliverio sagte in Benötige Programmierhilfe Javascript:

                                    Theoretisch schon, aber du ja jetzt einen lesbaren Status
                                    und ein Vergleich auf == "LightOn" oder auf == true
                                    kommt auf das selbe heraus

                                    Ich brauche das für meine Alexas als ein Gerät (DP) der sowohl zum Steuern da ist als auch immer den aktuellen Status beinhaltet. Habe einen DP Lampe Garagentor angelgt den ich an und aus schalten kann. Den hab ich dann als Write für einen Alias Garagentorbeleuchtung eingetragen und Status Garagentorbeleuchtung als Read. Vom Status habe ich vorher die Ausgabe im Script auf true/false geändert. Das funktioniert nicht, vermutlich weil DP 0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht als Typ Sting und nicht Boolean kommt. 0_userdata.0.Eigene_Datenpunkte.Garage.Garage_Status_Licht als boolean festzulegen geht auch nicht, dan meckert das Script.

                                    @oliverio sagte in Benötige Programmierhilfe Javascript:

                                    Da muss ich mal schauen. eigentlich wollte ich ja console.debug machen, aber das hat zu einem Fehler geführt. Gedacht war, das nicht zu viel im log erscheint, sondern nur wenn man das will.
                                    wenn du einzelne Nachrichten ausschalten willst, dann kannst du vor dem Befehle console.log
                                    das Kommentarzeichen // schreiben. Dann werden die Anweisungen nicht mehr ausgeführt

                                    Sorry, Fehlalarm. Die Fehler erscheinen wir gewünscht im Log.

                                    Hab das Resultat unserer Arbeit hier zusammengefasst.

                                    1 Antwort Letzte Antwort
                                    0
                                    • Gerudom 0G Offline
                                      Gerudom 0G Offline
                                      Gerudom 0
                                      schrieb am zuletzt editiert von
                                      #50

                                      Hallo, wie verhält es sich denn wenn das Garagentor auf Status "Intermediate" steht. Also gekippt ist ?
                                      Im Status steht hier nur "Opening" was falsch ist. Hat da jemand eine Idee ? Ich finde es nirgends in den Beschreibungen

                                      OliverIOO 1 Antwort Letzte Antwort
                                      0
                                      • Gerudom 0G Gerudom 0

                                        Hallo, wie verhält es sich denn wenn das Garagentor auf Status "Intermediate" steht. Also gekippt ist ?
                                        Im Status steht hier nur "Opening" was falsch ist. Hat da jemand eine Idee ? Ich finde es nirgends in den Beschreibungen

                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        schrieb am zuletzt editiert von
                                        #51

                                        @gerudom-0

                                        und wo kommt der neue Status her?
                                        Der ist nirgends beschrieben oder erwähnt hier.
                                        Die Doku vom Hersteller ist auch sehr dürftig.

                                        Was sollte den deiner Meinung nach passieren?

                                        Meine Adapter und Widgets
                                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                        Links im Profil

                                        1 Antwort Letzte Antwort
                                        0
                                        • Gerudom 0G Offline
                                          Gerudom 0G Offline
                                          Gerudom 0
                                          schrieb am zuletzt editiert von
                                          #52

                                          @oliverio naja also mein Garagentor kann kippen. In der App wäre es der Button in der Mitte Lüften. Warum der Status nicht beschrieben ist kann ich nicht sagen. Das es ihn aber gibt ist Fakt. Auf diesem Status zählt der dann nämlich die Zeit nach dem drücken. Warum relevant? Ich hab ne Lichtsteuerung die das Tor beleuchtet. Licht geh an wenn Status opening und bei Open mach dies und das. Gleiches Spiel bei Close. Der Status intermediate wird warum auch immer in der API mit dem Dauerstatus Opening quittiert. In meiner Lichtsteuerung also Dauerlicht... Kann das nicht abfangen. Ein logisches und mit negierter Open Abfrage funktioniert leider auch nur bedingt. Es ist schon echt komisch was die Marantec Firma da seit Jahren produziert.

                                          OliverIOO R 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          780

                                          Online

                                          32.4k

                                          Benutzer

                                          81.6k

                                          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