NEWS
Response text2command
-
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