Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Benötige Programmierhilfe Javascript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Benötige Programmierhilfe Javascript

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @Rushmed last edited by 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 1 Reply Last reply Reply Quote 0
      • R
        Rushmed Most Active @OliverIO last edited by

        @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.

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Rushmed last edited by

          @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 1 Reply Last reply Reply Quote 0
          • R
            Rushmed Most Active @OliverIO last edited by

            @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.

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @Rushmed last edited by

              @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 1 Reply Last reply Reply Quote 0
              • R
                Rushmed Most Active @OliverIO last edited by

                @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!

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @Rushmed last edited by 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 1 Reply Last reply Reply Quote 0
                  • R
                    Rushmed Most Active @OliverIO last edited by

                    @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.

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Rushmed last edited by 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 1 Reply Last reply Reply Quote 0
                      • R
                        Rushmed Most Active @OliverIO last edited by Rushmed

                        @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 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • R
                            Rushmed Most Active @OliverIO last edited by

                            @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?

                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @Rushmed last edited by

                              @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 1 Reply Last reply Reply Quote 0
                              • R
                                Rushmed Most Active @OliverIO last edited by 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"})
                                
                                OliverIO 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @Rushmed last edited by

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

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    Rushmed Most Active last edited by

                                    @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?

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @Rushmed last edited by

                                      @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 1 Reply Last reply Reply Quote 0
                                      • R
                                        Rushmed Most Active @OliverIO last edited by Rushmed

                                        @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 Reply Last reply Reply Quote 0
                                        • Gerudom 0
                                          Gerudom 0 last edited by

                                          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

                                          OliverIO 1 Reply Last reply Reply Quote 0
                                          • OliverIO
                                            OliverIO @Gerudom 0 last edited by

                                            @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?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            762
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            communication javascript monitoring
                                            5
                                            60
                                            2821
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo