NEWS
Telegram adapter: forbidden properties
-
Hallo zusammen,
seit meiner letzten Update-Aktion vor ungefähr 2 Wochen startet mein Telegram-Adapter (Version 1.11.1) neu, sobald ich Telegram-Nachrichten über Node-RED (Version 2.4.2) versende.
Für das Versenden nutze ich die ioBroker out node (Type steht auf command) und setze den Status von telegram.0.communicate.response auf nachfolgenden Payload:
{ "text": "<b>TANKSTELLEN IM UMKREIS VON 10KM</b>\r\n\r\n<b><a href=\"https://google.de/search?q=XXX%20GmbH%20YYY\">XXX in YYY</a></b>\r\n6.6km entfernt, derzeit geöffnet\r\nDiesel: 2.179€, Benzin: 2.149€ \r\n\r\n<b><a href=\"https://google.de/search?q=XXX%20YYY\">XXX in YYY</a></b>\r\n7.9km entfernt, derzeit geöffnet\r\nDiesel: 2.179€, Benzin: 2.149€...", "disable_web_page_preview": true, "parse_mode": "HTML", "chatId": 123456789, "user": "XXX" }
Die Nachricht wird versendet und kommt auch weiterhin an, allerdings stürzt danach der Telegram-Adapter ab und startet anschließend neu:
telegram.0 2022-03-09 19:17:47.785 info starting. Version 1.11.1 in /opt/iobroker/node_modules/iobroker.telegram, node: v14.17.5, js-controller: 3.3.22 telegram.0 2022-03-09 19:17:45.064 warn Terminated (UNCAUGHT_EXCEPTION): Without reason telegram.0 2022-03-09 19:17:45.063 info terminating telegram.0 2022-03-09 19:17:44.559 error The state contains the forbidden properties disable_web_page_preview, parse_mode, chat_id, text! telegram.0 2022-03-09 19:17:44.559 error Error: The state contains the forbidden properties disable_web_page_preview, parse_mode, chat_id, text! at validateSetStateObjectArgument (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6006:23) at Adapter.setState (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6093:21) at /opt/iobroker/node_modules/iobroker.telegram/main.js:280:47 at processTicksAndRejections (internal/process/task_queues.js:95:5) telegram.0 2022-03-09 19:17:44.557 error unhandled promise rejection: The state contains the forbidden properties disable_web_page_preview, parse_mode, chat_id, text! telegram.0 2022-03-09 19:17:44.555 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
Wurde im ioBroker.js-controller oder im Telegram-Adapter etwas geändert, was zur Folge hat, dass die Telegram-Properties welche ich verwende in den forbiddenProperties landen?
Habt ihr eine Idee woran das liegen könnte?
Ist das ein Bug oder hat sich hier etwas geändert was ich vielleicht nicht mitbekommen habe?
Danke und Viele Grüße
Flo
-
Hi,
ich habe das selbe Problem.
Bei mir kann es natürlich auch an gefährlichem Halbwissen und Unfähigkeit liegen da ich noch recht neu bin.In nodered (als iobroker adapter) baue ich in einer function-node das hier:
msg.payload = { text: '/tmp/haustuer.jpg', caption: 'Die einemilionste smarte Haustür', chatId: -1234567890, }; return msg;
Auch bei mir geht die payload dann mit einer iobroker out node auf telegram.0.communicate.response
Es geht, aber der Adapter gibt dann Fehler aus und startet neu.
host.iobroker
2022-03-20 14:25:00.211 info instance system.adapter.dwd.0 started with pid 6902telegram.0
2022-03-20 14:21:10.290 info starting. Version 1.11.1 in /opt/iobroker/node_modules/iobroker.telegram, node: v14.19.0, js-controller: 4.0.19
host.iobroker
2022-03-20 14:21:04.277 info instance system.adapter.telegram.0 started with pid 6882
host.iobroker
2022-03-20 14:21:03.120 info Restart adapter system.adapter.telegram.0 because enabled
host.iobroker
2022-03-20 14:21:03.119 error instance system.adapter.telegram.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
host.iobroker
2022-03-20 14:21:03.117 error Caught by controller[0]: Sun, 20 Mar 2022 13:21:01 GMT node-telegram-bot-api deprecated In the future, content-type of files you send will default to "application/octet-stream". See https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files for more information on how sending files has been improved and on how to disable this deprecation message altogether. at main.js:859:24telegram.0
2022-03-20 14:21:02.433 warn Terminated (UNCAUGHT_EXCEPTION): Without reasontelegram.0
2022-03-20 14:21:02.428 info terminatingtelegram.0
2022-03-20 14:21:01.895 error The state contains the forbidden properties caption, chat_id, photo!telegram.0
2022-03-20 14:21:01.893 error Error: The state contains the forbidden properties caption, chat_id, photo! at validateSetStateObjectArgument (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5669:23) at Adapter.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5752:21) at /opt/iobroker/node_modules/iobroker.telegram/main.js:280:47 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5)telegram.0
2022-03-20 14:21:01.887 error unhandled promise rejection: The state contains the forbidden properties caption, chat_id, photo!telegram.0
2022-03-20 14:21:01.870 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().Wenn ich das richtig verstehe, dann will telegram das so nicht mehr haben, oder?
unhandled promise rejection: The state contains the forbidden properties caption, chat_id, photo!
Vielen Dank für eure Hilfe.
-
Hallo zusammen,
hat keiner eine Idee woran das liegen könnte?
Ein paar Tipps in welche Richtung ich suchen kann?danke!
-
@markus-2 Der TG-Adapter hat eine neue Version, vielleicht ist es jetzt erledigt (1.12.2)
-
Hi guergen,
Vielen Dank für deinen Hinweis!
Wie kann ich die installieren?
Mir wird nur die 1.11.1 angezeigt, auch wenn ich bei den repositories "beta" auswähle. -
@markus-2 Aktualisiere mal die Info und die Adapterliste.
-
@guergen said in Telegram adapter: forbidden properties:
@markus-2 Aktualisiere mal die Info und die Adapterliste.
Hat funktioniert!
Die 1.12.2 hat auch ein extra json Objekt, damit klappt es wunderbar.
Nur mein Nodered (Adapter in iob) scheint jetzt ein Problem zu haben.
Es schreibt zwar noch in die Objekte, und die Daten stehen auch richtig drin (sehe ich in iob in den Objekten), aber die anderen Adapter reagieren nicht darauf.Aber da habe ich vermutlich bei meinen Experimenten etwas vergeigt.
Ich schau mir das mal an bzw. setze iob neu auf.
Wenn ich nicht weiterkomme mache ich einen neuen Thread dazu auf.
Ich danke euch!