NEWS
Telegram: Timeout bei "ask" konfigurieren
-
Hallo,
ich möchte per Telegram eine Frage stellen, welche durch das Drücken von Buttons beantwortet werden kann. Hierbei habe ich mich an das Beispiel wie im Telegram-Adapter Repo beschrieben gehalten: https://github.com/iobroker-community-adapters/ioBroker.telegram#question
Hiermit funktioniert es auch, dass die Buttons kommen und wenn ich diese innerhalb von 60 Sekunden drücke, kommt die Antwort wie gewollt an. Ich möchte aber gerne mehre Minuten (am Besten ca. 20) Zeit haben, bevor die Anfrage in den Timeout läuft. Laut Doku ist der Timeout konfigurierbar, allerdings habe ich bis jetzt noch nicht rausgefunden wie.
Wie kann ich den Timeout für
ask
beim Telegram-Adapter konfigurieren? -
@nokxs wo ist da das timeout?? ..ein sendTo ist einfach nur sende was ... ohne timeout.
zeigmal dein script vielleicht hast d dir da was eingebaut
-
Da steht...:
Question
You can send to telegram the message and the next answer will be returned in callback. Timeout can be set in configuration and by default is 60 seconds.Das kann ich beim Adapter in der Kofiguration auch nicht finden ?
-
Mein Test-Code sieht genau so aus wie im Beispiel, mit dem Unterschied, dass ich keine User angegeben habe:
sendTo('telegram.0', 'ask', { text: 'Are you sure?', reply_markup: { inline_keyboard: [ // two buttons could be on one line too, but here they are on different [{ text: 'Yes!', callback_data: '1' }], // first line [{ text: 'No...', callback_data: '0' }] // second line ] } }, msg => { console.log('user says ' + msg.data); });
Im Code des Adapters gibt es folgende Stelle (main.js:2040):
adapter.config.answerTimeoutSec = parseInt(adapter.config.answerTimeoutSec, 10) || 60; adapter.config.answerTimeoutSec *= 1000;
Dort wird der Timeout gelesen, allerdings habe ich wie @dslraser keine Stelle gefunden diesen zu konfigurieren. Deshalb habe ich versucht direkt beim Objekt des Adapters über den Expert-Mode dieses Datum zu setzen, allerdings hat das auch nicht funktioniert.
-
@nokxs sagte in Telegram: Timeout bei "ask" konfigurieren:
Im Code des Adapters gibt es folgende Stelle (main.js:2040):
adapter.config.answerTimeoutSec = parseInt(adapter.config.answerTimeoutSec, 10) || 60; adapter.config.answerTimeoutSec *= 1000;
Dort wird der Timeout gelesen, allerdings habe ich wie @dslraser keine Stelle gefunden diesen zu konfigurieren. Deshalb habe ich versucht direkt beim Objekt des Adapters über den Expert-Mode dieses Datum zu setzen, allerdings hat das auch nicht funktioniert.Das Setting gibt es (noch) nicht in der GUI. Da du aber schon so weit bist, könntest du die ||60 durch ||1200 ersetzten. Danach in Adapter einen Upload machen, vorher den Telegram Adapter stoppen
-
@fastfoot Ich hab jetzt deinen Vorschlag umgesetzt, die Zeile gepatcht und es funktioniert .
Falls ich etwas Zeit finde baue ich die Konfiguration in die GUI ein und mache einen Pull Request .
Danke für die schnelle Hilfe.
-
@nokxs sagte in Telegram: Timeout bei "ask" konfigurieren:
@fastfoot Ich hab jetzt deinen Vorschlag umgesetzt, die Zeile gepatcht und es funktioniert .
Falls ich etwas Zeit finde baue ich die Konfiguration in die GUI ein und mache einen Pull Request .
Danke für die schnelle Hilfe.
evtl ist es besser ein issue aufzumachen, hatte mir das mit der GUI auch überlegt, aber dann nicht gewusst wo das Setting eigentlich hin sollte