Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Response text2command

    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

    Response text2command

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Mario_m last edited by

      Hallo liebe Mitglieder,

      ich bin neu im Forum und nach Jahren des selbst scriptens habe ich mich dazu entschlossen auf eine etwas "vernünftigere" Lösung umzusteigen.

      Ich habe dann auch direkt eine Frage. Vielleicht hat ja jemand eine Idee?

      Ich nutze iobroker mit dem telegram, simple api, javascript und text2command Adpater. Ziel ist es im Moment per Restcall text2command anzusteuern und somit einen Befehl auszulösen. Das Ganze funktioniert auch Prima. Allerdings scheitere ich an der Response des text2command Adapters. Je nach Art der Regel bekomme ich keine Respone in den Datenpunkt: javascript.0.textProcessor bzw. es steht die task.command drin. Im Log steht allerdings die korrekte Antwort Der T2C Ausgabe der jeweiligen aufgerufenen Regel. Auch andere Datenpunkte im Objektbaum enthalten nicht diese Response. Sie ist nur im iobroker log zu finden.

      In text2command ist ein Regel hinterlegt: Wie heisst du? mit dem Trigger du

      Ich rufe das Ganze z.B. so auf: http://iobroker:8087/set/javascript.0.t … r?value=du

      Als Antwort ist Mario hinterlegt. Im Log steht das dann auch: text2command.0 2019-01-20 21:24:58.002 info Response: Mario

      Im Datenpunkt text2command.0.response steht nichts und im Objekt javascript.0.textProcessor auch nicht, bzw. je nach Art der Regel die task.command. Das Ganze wird über einen Textprocessor als Javascript, wie in der Doku beschrieben, aufgerufen:

      createState("textProcessor", '', function() {
          on({
              id: "javascript.0.textProcessor",
              ack: false,
              change: 'any'
          }, function(obj) {
              var task = obj.state.val[0] === '{' ? JSON.parse(obj.state.val) : {
                  command: obj.state.val
              };
              if (task.command !== "") {
                  sendTo(
                      'text2command', task.command,
                      function(err, response) {
                          console.log('Response is: ' + response);
                      }
                  );
              }
          });
          on("text2command.0.response" /*Answer on requested question*/ , "javascript.0.textProcessor");
      });
      
      

      Der console.log logeintrag in dem o.a. Snippet wird offenbar nicht verarbeitet. Das Objekt response ist auch leer.

      Das Ganze lässt sich auch mit anderen T2C Regeln wiederholen. Das Schalten einer Leuchte schaltet die Leuchte ein, bzw aus. Die Response erscheint im log. Führe ich die gleiche Regel per Telegram aus, wird sowohl geschaltet, als auch die Response im Telegram Channel ausgegeben, und somit verarbeitet T2C alles richtig. In einem Datenpunkt konnte ich die Response aber trotzdem nicht finden.

      Vielleicht kann mir jemand weiterhelfen?

      Vielen Dank

      Mario

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

      Support us

      ioBroker
      Community Adapters
      Donate

      851
      Online

      31.8k
      Users

      79.9k
      Topics

      1.3m
      Posts

      1
      1
      362
      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