Releases: jacopotediosi/OctoPrint-Telegram
1.10.0
♻️ Main changes
✨ Features & improvements
- Added support for Telegram channels (#367)
- Added support for uploading models and slicing via the
/filescommand (#58) - Multiple improvements to the
/filescommand:- Improved performance and error resilience
- Copy and move operations can now navigate through folders
- Added object dimensions to file information
- More detailed error messages (e.g., when a path no longer exists)
- Complete rewrite of the
/filamentcommand:- Fixed broken implementations of filamentmanager and SpoolManager plugins
- Added support for the Spoolman plugin
- Added ability to select which filament manager plugin to use when multiple are installed
- Implemented pagination for spool listings
- Added a "details" sub-operation to display full spool information
- Added ability to deselect spools
- Updated the select operation to allow choosing the target tool for spool selection
- Performed a general refactor to improve code logic and readability
- Added new notification events:
PrusaMMU_ErrorandPrusaMMU_Status(support for the Prusa MMU plugin) - Added new variables for notification messages:
{metadata}: access metadata of printing files (#385){prusammu}: access data from the Prusa MMU plugin{resource_monitor}: access data from the Resource Monitor plugin{display_layer_progress},{total_height},{fan_speed},{change_filament_count},{change_filament_time_left},{change_filament_next_time}: access data from the DisplayLayerProgress plugin
- Organized Variables dialog into sections
- Fixed spacings when emojis are disabled
- Improved the
/usercommand: clearer layout, explicitly showing both chat-enabled commands and individually enabled commands - Standardized the
StatusNotConnectedevent to match other notifications: now supports full configuration (text, markup, send with camera photos/GIFs, send silently) - Added a button to reset all notification messages to defaults
- Chats where the bot is no longer a member are now deleted at startup
- Renamed the
plugin_pause_for_user_event_notifyevent toPausedForUser - Renamed notification message variables:
currentLayer→current_layer,totalLayer→total_layer - Improved logging performance by avoiding f-strings in logger calls
🐛 Bug fixes
- Multiple improvements to menu button navigation:
- It is now possible to navigate multiple menu buttons in the same chat simultaneously without messages incorrectly updating each other
- Message sending no longer crashes when a menu button is pressed and the message is not modified
- Fixed repeated
plugin_pause_for_user_event_notify(nowPausedForUser) notifications (#393) - Added missing "command sent" reply to the
/gcodecommand - Fixed file sorting by name in the
/filescommand (previously broken due to emojis)
ℹ️ More information
Full changelog (commit-level): 1.9.1...1.10.0
1.9.1
♻️ Main changes
This is a minor release that addresses urgent bug fixes. If you’re looking for the changelog for version 1.9.0, you can find it here.
🐛 Bug fixes
- Fix crash
TypeError: 'type' object is not subscriptableon Python < 3.9 (#449)
ℹ️ More information
Full changelog (commit-level): 1.9.0...1.9.1
1.9.0
✋ Known bugs
This release contains a known bug that prevents it from working on Python < 3.9 (#449).
Please install release 1.9.1 instead.
✋ Breaking changes
The /on and /off commands have been replaced by the new /power command, which provides more advanced functionality.
Chats that were previously authorized to use /on will automatically be granted access to /power during the plugin update. However, it is recommended to review the permissions for each chat.
♻️ Main changes
✨ Features & improvements
- Commands are now case-insensitive (#225)
- New chat enrollment workflow: adding a chat now requires pressing a button, which starts a short countdown period during which enrollment is active (#400)
- Improvements to the known chats table in plugin settings:
- The table now updates automatically, so the "Refresh" button and auto-refresh checkbox have been removed.
- Updates are real-time, efficient, and modular. If a known chat's photo or title changes, only that element of the table is updated.
- The
/onand/offcommands have been replaced by the/powercommand, which allows you to view all plugs connected to OctoPrint, check their status, and turn them on or off. - Added support for the following new plugins (#445):
- Added a "Suggested plugins" section in the plugin settings to help users discover additional compatible plugins (#188)
- Notification message improvements:
- Performance improved by calculating only the template variables actually used in the notification message (lazy loading)
- If a template variable fails to calculate, it is now replaced with
[ERROR]instead of crashing the entire notification message
- Pre/post image action improvements:
- Added a setting to skip using
cpulimitduring GIF generation in environments where it's unavailable (e.g., Octo4a, Windows) (#382, #387) - General improvements: refactoring and performance enhancements, particularly regarding plugin settings management and saving
🐛 Bug fixes
- Fixed a bug that caused notification messages to crash when accessing nested keys in template variables, e.g.,
{temps[bed][actual]} - Webcam image retrieval now adheres to the snapshot timeout configured in OctoPrint settings (#421)
- Uses the FFmpeg path defined in OctoPrint settings before falling back to the system PATH
- The
/tunecommand now correctly displays only one tool when the nozzle is shared (#223)
ℹ️ More information
Full changelog (commit-level): 1.8.0...1.9.0
1.8.0
♻️ Main changes
🔒 Security fixes
- Fixed a bot token leak where the token could be inadvertently logged under certain conditions.
- Plugin APIs now return the correct
Content-Typeheaders, preventing MIME type sniffing attacks.
✨ Features & improvements
- Multiple UI/UX improvements in the plugin settings:
- Settings reorganized into multiple tabs
- Replaced buttons with sliding switches (#209)
- Sensitive fields (e.g., bot token) are now password fields
- Added "show/hide" toggle buttons for sensitive fields
- Added “remember to save” warnings where necessary
- Added descriptions for available commands and notifications
- Enlarged dialog windows throughout the plugin settings
- The "Variables" dialog now lists all usable variables in notification messages
- Added a new "Proxy formats" dialog to clarify supported proxy string formats
- Improved content of various informational dialogs
- Added badges and instructions in the wizard and settings screens to inform users whether dependencies needed to generate gifs are correctly installed
- The
/filescommand now offers to reprint the last printed object (#386) - Added support for variables up to 5 extruders in notification messages (#407)
- Improved GIF compatibility across devices (#406)
- Allowed adding webcam GIFs to
MovieDonenotification messages - Added
ffmpeg presetsetting to let users choose webcam video compression levels - Automatically sets bot commands on each startup, ensuring the list is always up to date
- Allow aborting paused prints as well
🐛 Bug fixes
- Fixed a crash that occurred when the plugin attempted to send an error message after a message delivery failure
- Webcam image retrieval now bypasses proxy settings (#408)
- Added safeguards to avoid sending invalid webcam images or videos to Telegram, which previously blocked entire messages
- Prevent crashes when sending files larger than 50MB (#347)
- Fixed overestimated print time in the
/filescommand (#418) - Fixed incorrect triggering of the
PrinterStartnotification when opening plugin settings (#439) - User name variables now resolve correctly in notifications, even when prints are started from group chats (#228)
- Automatic escaping of variables and entities in outgoing messages, depending on the selected markup
- Fixed out-of-sync issues where settings appeared unsaved after a page reload
- Fixed "unsupported type for timedelta" crash (#257)
ℹ️ More information
Full changelog (commit-level): 1.7.0...1.8.0
1.7.0
⚠️ New maintainer
🎉 This OctoPrint plugin now has a new maintainer: @jacopotediosi
🔗 The repository has also moved to a new location: https://github.com/jacopotediosi/OctoPrint-Telegram
Huge thanks to the previous maintainers for their great work on the project.
Feel free to open issues and pull requests as usual!
⚠️ Major refactors – bugs may be present
This plugin hadn't seen significant changes since 2021.
It was time for a refresh — and this release includes numerous changes and extensive rewrites throughout the codebase.
As a result, new bugs may have been introduced during the refactoring. If you encounter any, please report them via the Issues tab.
If these bugs disrupt your workflow, you can temporarily roll back to the previous version while waiting for the next release.
To do so, go to OctoPrint Settings → Plugin Manager → Get More, and install the plugin from the following URL:
https://github.com/jacopotediosi/OctoPrint-Telegram/archive/refs/tags/1.6.7.zip
⚠️ New compatibility requirements
To support exciting new features and cleaner, more maintainable code, this plugin now requires (at least):
- OctoPrint 1.4.0 (released March 4, 2020)
- Python 3.7 (released June 27, 2018)
If you’re still using older versions, it's time to update — new plugin versions cannot run in such outdated environments.
✋ Breaking changes
-
Plugin logs are now saved in a dedicated log file (
plugin_telegram.log) instead ofoctoprint.log. You’ll find it under OctoPrint Settings → Logging → plugin_telegram.log -
The debug logging checkbox has been removed from plugin settings. Logging level is now controlled via OctoPrint Settings → Logging → Logging Levels.
-
Emoji have been updated to the Unicode 16.0 standard. Some emoji names may have changed — please review the emojis used in the plugin’s notification message settings, as some may no longer work.
👉 For the new names, refer to the official emoji list (see theDescriptioncolumn).
♻️ Main changes
🔒 Security fixes
-
Improved overall API security: stricter permission checks, better input validation, and CSRF risk eliminated.
-
Enabled autoescape for Jinja templates to prevent potential injection vulnerabilities.
✨ Features & improvements
-
Webcam management improved: the plugin now supports the new OctoPrint webcam integration. On older OctoPrint versions (< 1.9.0), it falls back to the Multicam plugin or legacy webcam settings.
-
You can now use relative URLs if your webcam is exposed on the same server as OctoPrint (localhost).
-
Media (images and GIFs) are now grouped using Telegram’s MediaGroup feature. The old "separate media messages" setting has been removed.
-
New commands added:
/home,/photo. -
Emoji updated to Unicode 16.0. Many more emoji available! Improved consistency across bot messages.
-
Added support for Telegram's MarkdownV2.
-
Added support for
limitcpuas a fallback whencpulimitis not available. This allows GIF generation even on systems wherecpulimitis not available. -
Removed the (opt-in) command usage tracking used by previous maintainers.
-
Refactored or completely rewritten many parts of the codebase. Fully migrated to Python 3. Naming conventions now follow PEP8. Linter and formatter warnings fixed. Pre-commit hooks coverage improved: replaced
isort,black, andflake8with modernruff, addedstandard,djLint, andcodespell. Code readability, performance, and exception handling have been significantly revised and improved. In cleaning up spaghetti code, many bugs were likely fixed silently.
🐛 Bug fixes
-
Webcam orientation should now be correct in all scenarios.
-
#13: Fixed duplicate notifications when printing with Octolapse.
-
Telegram chat actions (e.g., "uploading photo", "typing") are now reliably triggered while the plugin is working.
-
Fixed a crash when sorting files via the
/filescommand. -
Group chat pictures are now properly saved in plugin settings.
-
Deleted chats no longer reappear in the plugin settings after restarting OctoPrint (unless a new message is received from the chat, and the bot is still part of it).
-
Fixed various typos identified by the new
codespellpre-commit hook.
ℹ️ More information
Full changelog (commit-level): 1.6.7...1.7.0
1.6.7
Update plugin version...
Full Changelog: 1.6.6...1.6.7
Octoprint Telegram 1.6.6
What's Changed
- Adds pre-commit-hooks by @FranciscodeMaussion in #361
- Expose User and Owner variables for events by @slvrpdr in #364
- Add octolapse support, send video by @ElDavoo in #371
- fix snapshot url for multicam plugin by @radioburst in #396
- Remove destinations keyword #424 by @guysoft in #425
New Contributors
- @FranciscodeMaussion made their first contribution in #361
- @slvrpdr made their first contribution in #364
- @ElDavoo made their first contribution in #371
- @radioburst made their first contribution in #396
- @guysoft made their first contribution in #425
Full Changelog: 1.6.5...1.6.6
Octoprint Telegram 1.6.5
try to add loop message for when printing from SDcard
add proxy management
fix for writing files from zip files
add possibility to start print from upload message
add option to remove "I do not understand you" message
add option to invert rotation of images
add option to modify date time format for time_finish
add exception management when new event not add to some user yet
add size management for timelapse send
add event Connected,Disconnected,Home,Alert
Version 1.6.4
add event MovieDone to get notified when a timelapse is done
add management of smartplug with options if getlist don't work
add show of thumbnail in File Information (need to create an api key on imgbb.com to upload the file. You can set the account as private and there is a possibility to auto delete the file. If you don't put an apikey no file will be uploaded but you will not see the thumbnail)
fix upload problem create when we had to save file in local before upload to not break gcode processor
better check before use of thumbnail
fix problem TPlink smartplug to turn on bad copy paste
add the setCommandList from @rlogiacco (will be possible to send the command for the bot from the plugin options)
add UserNotif event that will be read on serial line with a echo:UserNotif so you could send your own message with gcode command like M118 E1 UserNotif XXXXX
change to fix printTime to finish_time error
Octoprint Telegram 1.6.3
add function to send gcode from telegram /gcode_XXX where XXX is the gcode command (will not check or send text in return)
add {currentLayer}, {totalLayer} - the current and total layers number (need the plugin DisplayLayerProgress)
add function to Turns on and off the Printer power. Requires the PSU Control plugin or the tasmota_mqtt or tplinksmartplug or TuyaSmartplug (this one still need to accept the push request)
add possibility to call gcode or system command before and after taking image.
add notification wait for user directly on the telegram plugin without need of a other plugin
add notification on M600 gcode
add notification on Error
add send of thumbnail on start printing (send by prusa slicer or cura when ufp) need external plugin
change the way we upload file to avoid problem with prepossessed hook