Use telegram service to communicate with ioBroker
This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. For more details and for information how to disable the error reporting see Sentry-Plugin Documentation! Sentry reporting is used starting with js-controller 3.0.
- (@GermanBluefox) Channel posts (from a channel where the bot is an admin) are now received and written to
communicate.request/communicate.requestChatId(previously ignored) - (@GermanBluefox) Robustness: all
setStatecalls now catch their errors (via asetStateSafehelper), so a failing state write can no longer cause an unhandled promise rejection - (@GermanBluefox) Added the state
communicate.chats: every chat/group the bot receives a message from is remembered as JSON (id => {title, type}), so other adapters can offer a chat/group picker - (@GermanBluefox) Outgoing messages that fail because telegram is unreachable are now queued in memory and resent automatically once the connection is back (bounded queue, permanent errors like "chat not found" are not retried)
- (@GermanBluefox) Documented that an unanswered
askreturns the string'__timeout__', and that the calling adapter's ownsendTotimeout (JavaScript adapter defaults to ~20 s) must be larger than the configured answer timeout - otherwise the callback fires early (looks like a "No" answer) - (@GermanBluefox) A received location or venue is now written to the new state
communicate.requestLocationaslatitude;longitude(rolevalue.gps), so it can be shown e.g. on a map - (@GermanBluefox) Fixed: recipients can now be mixed by username and first name in one list - a recipient without a public telegram username is matched by first name even when "store username" is active
- (@GermanBluefox) Added the missing translations for the configuration labels (API URL, port, certificates, media quality, ...) in all languages
- (@GermanBluefox) Robustness: all telegram API calls now catch their errors, so a failing call can no longer terminate the adapter with an unhandled promise rejection
- (@GermanBluefox) The inline keyboard of a broadcast
askquestion is now removed for the user who answered (taken from the pressed callback message) - (@GermanBluefox) Fixed: the adapter no longer crashes (unhandled promise rejection) when the inline keyboard of an answered/timed-out
askquestion cannot be removed (e.g. "message to edit not found") - (@GermanBluefox) Fixed:
deleteMessage/editMessage*without an explicituser/chatIdis now executed once for the chat given in its options instead of being broadcast to every user (which made the other users fail) - (@GermanBluefox) The caption of a received photo/video/document is now written to
communicate.request(like a normal text message), so image captions are no longer lost - (@GermanBluefox) Added a "Parsemode" option to the "ask via Telegram" Blockly block, so questions can be formatted with HTML/MarkdownV2
- (@GermanBluefox) Added support for sending files directly from the ioBroker file storage via
iobfile://,iobobject://andiobstate://URIs (works with Redis/jsonl where the file is not on the local filesystem) - (@GermanBluefox) The
/passwordmessage is now deleted from the chat after a successful authentication - (@GermanBluefox) Fixed:
requestChatId/requestMessageId/requestUserIdare now set when receiving a photo, document or other media - (@GermanBluefox) Fixed: sending to a recipient by numeric user id (
{ user: "12345" }) now works - (@GermanBluefox) Fixed: no longer crashes when a system notification contains an empty messages list
- (@GermanBluefox) Added an optional
ioBroker.assistantinstance: messages that no internal rule/command matched are forwarded to it and its answer is sent back to the chat - (@GermanBluefox) Migrated the adapter backend to TypeScript; texts are now provided as
i18nJSON files loaded viaI18n - (@GermanBluefox) The target instance is now checked to be alive before a message is forwarded (text2command/assistant)
- (@GermanBluefox) States without a value are now reported as "uncertain" instead of showing an unset boolean as "ON"
- (@GermanBluefox) Timers are now managed by the adapter and cleared on unload (including pending question timeouts)
- (@GermanBluefox) Fixed: the "allow states" option could not be disabled
- (@GermanBluefox) Fixed: a question timeout could drop other pending questions
- (@GermanBluefox) Fixed:
communicate.responseSilentJsonacknowledged the wrong state - (@GermanBluefox) Fixed: removed a stray empty entry from the generated command keyboard
- (copilot) Adapter requires node.js >= 22 now
- (copilot) Adapter requires admin >= 7.7.22 now
- (@klein0r) admin 7.6.17 and js-controller 6.0.11 (or later) are required
- (@klein0r) Updated dependencies
- (bluefox) Admin component was migrated to TypeScript
- (bluefox) Node.js >= 20.x and js-controller >= 6 and admin >= 7 are required now.
- NodeJS >= 20.x and js-controller >= 6 are required
- (simatec) Responsive Design added
- (klein0r) Allow async function calls in ask callback function
- (klein0r) Added option to send venue (with title and address)
- (bluefox) Username can consist of more than one user. The separator is comma, semicolon or space.
Older changelogs can be found there
The MIT License (MIT)
Copyright (c) 2024-2026 iobroker-community-adapters iobroker-community-adapters@gmx.de
Copyright (c) 2016-2023, bluefox dogafox@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
