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

      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
                            • Gerudom 0
                              Gerudom 0 last edited by

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

                              OliverIO R 2 Replies Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @Gerudom 0 last edited by OliverIO

                                Ok, wir versuchen es mal langsam

                                @gerudom-0 sagte in Benötige Programmierhilfe Javascript:

                                naja also mein Garagentor kann kippen.

                                Ja das ist klar, das du es siehst. Problem ist, das wir nur die ankommenden Daten interpretieren können ohne das wir das sehen.

                                In der App wäre es der Button in der Mitte Lüften.

                                Lüften? Ich habe den Garagentoröffner nicht. Ich habe nicht mal eine Garage. Von daher weiß ich nichts von einer Fernbedienung oder wie sie aussieht.

                                Warum der Status nicht beschrieben ist kann ich nicht sagen. Das es ihn aber gibt ist Fakt.

                                Nochmal die Frage, hast du den auf der Schnittstelle gesehen? Sendet das Garagentor diese Daten? oder ist es nur das was du siehst: Tor ist gestoppt?

                                Auf diesem Status zählt der dann nämlich die Zeit nach dem drücken.

                                Welche Zeit? Wo sieht man das das der zählt? Aus den bisherigen Berichten kommen keine Einzeldaten zur Zeit. ggfs. wird der Status Opening mehrmals wiederholt. Allerdings konnte ich da noch keine Regel ableiten, auf Basis der man was interpretieren kann.

                                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.

                                Weil ich genau den Status (also das Skript), den die Steuerung übermittelt, übersetze und dann direkt in einen Datenpunkt schreibe.

                                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.

                                Frag doch mal beim Support an, wie du das auf der Schnittstelle erkennen kannst? Leider ist die Dokumentation etwas älter und mittlerweile sendet die Steuerung auch leicht abgewandelte Daten. Ein aktuelles offizielles Dokument das zum aktuellen Status passt habe ich nicht gesehen.

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

                                  @gerudom-0 Vll. erstmal ein paar Eckdaten. Um welchen Torantrieb geht es bei dir? Hersteller, Bezeichnung? Welche App?

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

                                    @rushmed Marantec comfort 370 heißt der Antrieb und von Maveo gibt's die Smarte Lösung dazu samt ios App. https://apps.apple.com/de/app/maveo-app/id1552198418

                                    Ich hab Mal beim Support gefragt was die dazu sagen.

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

                                      @gerudom-0

                                      und in dieser app sieht man dieses intermediate?
                                      bzw. was sagt die app, wenn das tor mitten drin stoppt?

                                      Nachtrag:
                                      Ich habe mir mal die App angeschaut.
                                      Allerdings die android App, weil man bei den apple-apps nicht "reinschauen" kann.
                                      https://play.google.com/store/apps/details?id=com.marantec.maveoprogta&hl=de&gl=US

                                      Diese App funktioniert über eine andere Schnittstelle, wie der Code oben.
                                      Die App nimmt per Bluetooth kontakt auf und wertet dann diese Daten, welche aber komplett anders aufgebaut sind, aus.
                                      In dieser App sehe ich die folgenden States:

                                      • GATE_POSITION_IN_BETWEEN
                                      • GATE_POSITION_OPEN
                                      • GATE_POSITION_OPENING
                                      • GATE_POSITION_CLOSING
                                      • GATE_POSITION_CLOSED

                                      und siehe da, es gibt einen weiteren Status, den die tcp schnittstelle nicht liefert.
                                      Ich interpretiere GATE_POSITION_IN_BETWEEN als mittendrin gestoppt, da opening und closing = mitten drin aber in Bewegung bedeutet.

                                      In die App reinschauen ist allerdings kein dankbarer job, da das hauptscript aus 25000 Zeilen besteht und durch webpack durchgenudelt wurde.
                                      Gott sei dank nicht minifiziert und alles in javascript und html.
                                      lustigerweise sind da portraitbilder mit enthalten. wahrscheinlich die entwickler oder die mitarbeiter der firma
                                      was für ein schrott die heute alles in die apps mit reinpacken

                                      nochmal nachtrag. die obige app ist eine app für eine profilösung
                                      ein weiterer durchgang mit dieser app
                                      https://play.google.com/store/apps/details?id=com.marantec.maveoapp2&hl=de&gl=US
                                      lief leider nicht so gut. die ist technisch anders umgesetzt und daher nicht wirklich einsehbar. ich gehe aber davon aus, das die funktionsweise nicht viel anders ist wie die obige

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

                                        @oliverio auf mich wirkt das ganze Thema so als war da Mal ein Student der sich irgendeine Lösung gesucht hat und hat Mal angefangen. Dann war er weg 😂 seither versuchen mehrere Künstler ihr Glück.... Diese Inkonsistenzen in mehreren Apps Schnittstellen etc. nichts neues. Einer vom Support sagte vor Jahren Mal zu mir die müssen Reverse Engineering betreiben für die Funktionsweise der App. Das sagt alles. So falsch ist mein Eindruck glaub nicht...

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

                                          @gerudom-0
                                          ja zumindest für die tcp schnittstelle gilt das.
                                          die app sieht ganz gut aus.

                                          evtl fällt dir ja eine regel ein, wie man aus den sich wiederholenden "openings" den status ableiten kann (evtl wenn das mehr wie x sekunden gemeldet wird, dann wird der in between status angenommen.
                                          das lässt sich schon einbauen.
                                          nur ich kann nix testen ich bin auf leute angewiesen, die das gerät haben

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

                                            gelöst: der Name vom Torantrieb war gemeint..., den musste ich umbenennen oder benutzen. War nur durch die Rückmeldung irritiert.

                                            @oliverio Leider bekomme ich immer die Meldung:

                                            client received: R;Error;Unknown garage for device: TomsGarage
                                            wenn ich das über iobroker trigger.

                                            Nutze ich die Zapf-App kommt die Meldung:
                                            client received: S;Garagentorantrieb;lightOn for device: TomsGarage

                                            Devicename stimmt also...irgendeine Idee, was ich noch machen könnte?

                                            Danke Tom

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            801
                                            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