Releases: nlef/moonraker-telegram-bot
Message keyboards, sending files, Docker
This release will not break existing setups. All new features are optional.
New features
- You can now send any desired file via the bot. Be it resonance calculation data (a guide is available), or something else, sky is the limit. #242
- The bot is now available with the prind project. If you want, you can use it containerized. #227
- Archive support for gcode uploads has been extended. Formats supported are .gcode directly, or archives .zip, .tar.gz, .tar.bz2, .tar.xz. #221
- You can now format messages if you need it. #202
- Additional functions have been added. You can now do
/fw_restart
,/services
and/reboot
#198 , #194
Fixes
/logs
command now displays installed versions properly. #222- Images with transparency should not cause problems with timelapse anymore. #212
- Bot will try to build and send the lapse as is, if print was canceled. #150
Full Changelog: v1.4.5.1...v1.5
Bugfixes
This is a small bugfix release.
This should fix most of older "unclear" issues with the bot only doing some of the functionality, but not others
Fixes
- Unfinished lapse check fix
- Timelapse telegram flood control fix
- Fixed timelapse creation when no preview is being sent by slicer
- Fixed relative path conversion for timelapse config, which was causing previous unclear issues experienced by some users
Kudos to @reijii-fpv for the first two fixes
Status message rework, Secrets, QoL fixes
THIS UPDATE WILL BREAK YOUR CONFIG.
DON'T UPDATE IF YOU DON'T WANT TO FIX YOUR CONFIG
The bot will warn you if you have broken/non-working options in the config.
All new functions are described in detail in the wiki.
If updating manually, run install.sh.
New features
- Secrets are here! If you use some form of auto backup, and don't want to be meddling with regex edits of your config file, you can now stash your credentials in a safe location. Simply add a [secrets] section and a secrets file. #174
- We started a larger status message rework, which will lead to a bigger config and more options for the status message. Because of that, status message contents are now declared in a separate section. This is a config-breaking change. #144
- To slightly offset the pain of having to fix the config, fans from different groups can now be entered as one parameter, which is less cumbersome than before. See the [status_message_content] section on the wiki. #172
- Any moonraker devices can now be displayed in the status message.
Fixes
- Telegram commands generated by macros are now validated before trying to add them to autocomplete.
- progress_update_message default is now false. Adjust config accordingly if needed.
Full Changelog: v1.4.4...v1.4.5
QoL and bugfixes
The bot will warn you if you have broken/non-working options in the config.
All new functions are described in detail in the wiki.
We now have announcements, to warn you of potentially breaking changes.
After this update you will automatically receive them, if you run fluidd or mainsail.
(#143)
New features
- As with moonraker and klipper, there is now a "-l" flag do specify the log file location, when starting the service (#146)
upload_path
config option has been added to specify a path to upload gcodes with the bot to. (#127)hidden_bot_commands
has been added, to hide specific built in bot commands from autocompletion(#156, #157)- normal
fan
can now be added to thestatus_message_heater_fans
section (#170) - Progress update messages configuration has now been split into two parts:
progress_update_message: true
enables the sending of the update message, andsilent_progress: false
to set notification type to silent.
Fixes
- Gcode preview has been fixed (#153)
- The bot config is now written to the log, so the log is sufficient when posting issues (#152)
- You now have the option to delete unfinished lapse instead of building it.(#158)
- Kiauh/Install scripts have been reowrked/fixed (#159, #163, #165)
- FPS was a required parameter in the config, if running in no-camera mode. Has been fixed. (#148)
Changes
disabled_macros
are now renamed tohidden_macros
, to better reflect the functionalityshow_hidden_macros
are now renamed toshow_private_macros
to better reflect the functionality
Removed
- log_path is now removed, use the -l flag
Full Changelog: v1.4.3...v.1.4.4
Additional status options & bugfixes
The bot will warn you if you have broken/non-working options in the config.
All new functions are described in detail in the wiki.
New features
- You can now use an API-token to authorize instead of a password.
- The installer has been upgraded, and can install multiple instances of the bot.
- There is a separate uninstall script now as well.
- The status message has been expanded with all the different types of fans.
Fixes
- The file list now has paging.
- ujson is used for http processing
- Automated timelapse by height has been fixed. The layers now do not have to be a multiple of the lapse height parameter.
Removed
- Legacy mode for notifications has been removed, as well as the corresponding config line. Use the
silent_progress: true
if you need a notification on each status update. You will get a small service message, which gets deleted each time a status update is triggered.
Full Changelog: v1.4.2...v1.4.3
G-Codes from subfolder fixes
The bot will warn you if you have broken/non-working options in the config.
New features
- You can run any arbitrary macro/g-code after a photo is taken. This is useful, if you want for example to park the head before taking the picture, and resume immediately after the photo is taken. See the new command in the interacting with klipper section and the new parameter in the config.
- The status message does not autoupdate when a m117 command is run. You can enable this behaviour in the config, see the telegram ui section.
Fixes
- Added CI, many thanks to @KapJI
- Fixed issues when g_code was located in a subfolder, thanks to @xyzroe
- Small fixes to sensor display in status messages
- Delay after the picture is taken is now equal to the delay before the picture is taken.
- FPS calculation for some edge case scenarios for timelapses is now fixed
- JWT-Token refresh is now implemented
- Preview is added for uploaded files
Small bugfixes and oversights
The bot will warn you if you have broken/non-working options in the config.
New features
- [temperature_fan] can now be added to the status message
Fixes
- Installation template has been fixed thanks to @DxCx
- A lot of small documentation fixes to the wiki
- Some small bugfixes
Single-message notifications, usability, performance tweaks
THIS UPDATE REQUIRES RUNNING INSTALL.SH
THIS UPDATE BREAKS A LOT OF CONFIG OPTIONS; PLEASE UPDATE AT YOUR OWN DISCRETION.
The bot will warn you if you have broken/non-working options in the config.
Documentation has moved to the wiki for easier maintenance and reading ease.
New features
- The most popular request got implemented - the preview and status messages are now updated in a single message. This is the new default behaviour. If you want to revert to the old behaviour, you can set the
status_single_message: false
in the[telegram_ui]
section. We would appreciate your feedback on this, please let us know in the issue section.(#60) - All commands and macros are now available via the inline autocomplete function in telegram. You can hide specific macros, or disable macro autocompletion via the config as always. Every time the bot restarts, the commands get updated, but the client needs to restart as well to see the changes.
- The keyboard can now be fully customized as you wish. Add or remove buttons at will.
- You can now edit the contents of the status message. See the sample config on the wiki.
- Configuration files are checked for validity and depreciation. You will get warnings/errors on startup.
- Finished timelapse parameters are saved to klipper variables, should you need them. Refer to the installation document for the needed macro.
- If you want to run something after the bot completes building the timelapse (the next print, or a cloud upload via the gcode_shell extension), you can do so. See
after_lapse_gcode
in the [timelapse] section. (#65) - If you want to build a timelapse, but they get too big for sending, or if you want to skip sending for other reasons, you can now set
send_finished_lapse
to false. - If you want to do specific actions based on specific lapse parameters (for example, if the lapse is to big, or if it's too small, the bot now writes to G-Code variables, which can be accessed by normal klipper macros. See the updated install instructions as well as [interacting_with_klipper.md]
- G-Code files now have a preview and information displayed before you send them to be printed in the
/files
dialog. (#78) - Camera picture can now be rotated
- Telegram API location can now be set manually if needed
- Video buffer length can be extended manually
Fixes
- Camera fps is now set via config and
/video
duration is now fixed, video artefacts should not be happening anymore. Set the needed lenght accordingly.(#55 ) - No-camera-mode has been extensively tested, a couple of bugs were squashed. Please let us know if we missed anything (#63 )
- All the different shutdown states and errors are now displayed 1:1 as they are reported by moonraker (#67)
- Runtime parameter changes are now reflected in the bot, so you know if they were applied successfully (#69)
- Video capture and lapse building have been optimized, and should not cause overflows anymore. Please test and get back to us if you have further problems. Larger videos may need capture buffer adjustments.
- General memory and process optimisations. Weaker setups will propably see improvements.
- A new ujson library is now used for faster json parsing.
- The sensors are now requested via the websocket. Each sensor type now has a corresponding emoji in the status message.
- Internal logic for moonraker authorization has been reworked and happens on klippy class type initialisation.
- Search for unfinished lapses with long names has been fixed.
Changes
- Documentation was updated, cleaned up, moved to the wiki.
- We have replaced the images for missing camera and missing preview. Less fun, less copyright problems. (#71)
- Access denied message has been improved for better readability and easier install.
- Multiple parameters have been renamed for unification purposes.
Removed
/photo
is removed./status
is now the replacement, and sends a picture together with configurable info on the printer.
You can check out the changes in detail via github tools:
v1.3.1...v1.4
Runtime configuration, timelapse duration limts
If you update manually, you should always run install.sh after an update
New features
-You can now set the lapse and notification settings from gcode. See the documentation.
-You can set minimum and maximum duration for resulting timelapse videos for viewer comfort. See the documentation.
Removed
- min_delay_between_notifications is removed. If you experience too many notifications, it's a good idea to clean up your notification settings. A good start is to set a notification to appear every X minutes, and to enable silent notifications. This accomplishes the same behaviour, as min_delay functionality.
Macros, GCodes, Moonraker authorization
Every new feature/changes to old features are as always described in the docs.
If you update manually, you should always run install.sh after an update
New features
- Macros! You can now run any macro you have by simply typing its name in the chat. More details as always in the documentation and ideas for usage. All commands now have the double confirmation, to prevent accidental executions. (#49)
- Custom buttons! Make your favourite macros appear on the keyboard.
- Run gcode from the chat window
- Moonraker authorization is now available (#37)
- Extended status messages for videos and lapses. Now you see the status of your requests.
- Extend the last frame of the timelapse, so that the video does not end too abruptly. As always configurable.
- You can now restart the bot via a chat command, which should make changes to the configuration easier. Sadly as you know fluidd development is on hold, and there is still no restart button in the fluidd webinterface.