Es tut sich endlich mal wieder was im Bezug auf OctoPrint, denn mit dem heutigen Tage wurde eine neue Version veröffentlicht, welche derzeit in 1.5.0 RC1 vorliegt. Ich habe neben OctoPrint auch noch Repetier Server am laufen und bin mit beiden Varianten glücklich. Bei der einen vermissen ich was die andere hat und umgekehrt das selbe. Repetier macht gerade viel Sinn bei mehreren Druckern. Daher nur mal kurz der Tipp, schaut Euch auch mal die Alternative an.
Auf dem ersten Blick gibt es nicht wirklich was neues, denn das größte wurde unter der Haube getätigt, indem wieder viele Fehler behoben wurden sind und man sich langsam an Python3 ran tastet, denn aktuell liegt dieses noch in Version 2.7.16 vor.
Es ist schon wahnsinnig was die Entwickler immer wieder auf die Beine stellen und auch was alles behoben wird. Daher wie immer wieder der aktuelle Changlog für Euch.
Features & improvements
- #1600 – Support reading the long filename from
M20if included or adding it from a plugin (e.g. one that utilizes a storm of
M33to fetch all long names). Please note: That’s the only way
M33will ever be supported in OctoPrint, as it is utterly the wrong way to go about fetching long names for a list of files of unknown size, so stop asking about it.
- #2051 – Add a media player for MP4 timelapses. See also #3625.
- #3502 – Set default timeout for websocket connection to 30s to work around loading time issues observed by some users.
- #3636 – Option to turn off internal filename display (see also #3783).
- #3646 – A new recovery page is available now under
/recovery, that allows accessing system commands, basic printer control and backup functionality even if the main interface is no longer functional, e.g. due to an errant plugin.
- #3647 – Support for HLS webcams.
- #3659 – Enable checksums when manually streaming to the printer as some firmware variants apparently require this.
- #3664 – Discovery: Remove dependency on the unmaintained and not Python 3 compatible pybonjour for zeroconf support in favor of python-zeroconf. For Python 2, this library has been vendor bundled and patched with some bug fixes only available in later, Python 3 only, releases.
- #3672 – Warn users if there’s a certain amount of resend requests detected, indicating a lot of noise on the line.
- #3696 – Clarify in Settings dialog that most of the serial settings require a reconnect to the printer to become effective. See also #3703.
- #3700 – Support non standard pip executable locations in Plugin Manager, Software Update and Backup.
- #3718 – Printer Notifications: Set a maximum height for the list of notifications.
- #3719 – Hint mkstemp used in
atomic_writeto create temporary files in the destination directory. This ensures that the final move operation upon write completion and thus file overwriting stays atomic even if the system wide temporary directory and the destination directory of an
atomic_writeoperation are on different partitions and thus avoids potential race conditions causing file corruption.
- #3720 – Backup: Allow plugins to flag data managed by them to exclude from backups through a new hook
- #3726 – Better resilience against broken analysis queues in third party plugins.
- #3727 – Add terminal filter for busy protocol. If you have modified your stock terminal filters, you’ll have to add this manually, using name „Suppress processing responses“ and regex
- #3728 – Backup: Added a new event
plugin_backup_backup_createdthat will be triggered on backup creation. Allows third party plugins to perform certain actions on backup creation, e.g. saving them to a cloud provider like GDrive as displayed by the Google Drive Backup plugin.
- #3733 – Allow to permanently ignore update notifications from individual update checks.
- #3738 – Clarify currently selected tool cannot be displayed and only show tool selector if the current printer profile has more than one tool configured.
- #3744 – Discovery: Add unique ID TXT record to zeroconf service.
- #3745 – Add pyenv local version to
- #3754 – Detect duplicate configured folder paths, warn the user, refuse to safe them, and as a final line of defense refuse startup if such an invalid configuration is detected.
- #3756 – Add support for authentication via
Authorization: Bearer <apikey>header.
- #3760 – Make
- #3762 – The whole code base now uses black, prettier, isort, pre-commit and a bunch of custom pre-commit hooks to ensure consistent formatting and enforcement thereof. For anyone doing development, a file containing revs to ignore by
git blameis included so this should hopefully not nuke the usefulness of that as long as a current git version is used, set it up via
git config blame.ignoreRevsFile .git-blame-ignore-revs.
- #3766 – Include user name or plugin identifier of who/what started/paused/resumed/cancelled a print job.
- #3768 – Printer Notifications: Add additional „clear notifications“ button to panel header and allow to change sorting order.
- #3772 – Virtual Printer: Add EEPROM support.
- #3777 – Software Update: Warning message if a rate limit is preventing a version check to succeed. Also support configuring a GitHub Personal Access Token to be configured via
config.yamlto increase rate limit restrictions.
- #3782 – Update FontAwesome to 5.15.1. A compatibility option for backwards compatibility to the former bundled version 4.7.0 is active so that this should not cause issues for third party plugins.
- #3785 – Update KnockoutJS to 3.5.1
- #3791 – Discovery: Allow to restrict network interfaces and addresses network discovery will be enabled for.
- Don’t try to send
beforeDisconnectscript when not properly connected yet.
- Default to libx264/mp4 for timelapses.
- Try up to three times to check for network connectivity before declaring offline state.
- Add support for the
startaction command to allow triggering of the active print job from the printer LCD.
- Add support for removing settings overlays.
- Add support for settings overlays added by plugins.
- New hook:
octoprint.printer.additional_state_data(see also OctoPrint/plugins.octoprint.org#553).
- Add socket authentication to the bundled client.
octoprint.util.dict_mergeand use where it makes sense to improve performance, idea by @amrsoll
- Disable logout button in case of login via auth header or API key.
- New plugin timings logging feature. If enabled (via Settings > Server > Debug options) this will write two new files to the logging dir,
plugintimings.csv, which contain timing information for each and every hook or implementation call on plugins registered with OctoPrint. This should be helpful to debug any kind of performance issues caused by third party plugins. It should also be a valuable tool to debug performance issues with bundled plugins.
- New API endpoint
/serverthat returns version and safe mode status.
- New upload state in the UI, „Refreshing list“, the will hopefully allow to debug any further performance issues with file management.
- Converted code base to use dict and set literals over constructors where applicable. See also #3762.
- Access Control is now mandatory and no longer can be disabled. If you so far had it disabled, upon upgrading to 1.5.0, OctoPrint will prompt you to create a user name and password for the (first) admin user. This step was sadly necessary as too many people still will happily expose their completely unsecured OctoPrint instance on the public internet, causing additional support overhead from both attacked users and security researchers.
- Use monospace font for GCODE Scripts editor in the settings.
- New system information collection page & CLI. Will dump a whole lot of all that environmental data that is required for debugging/support, and can easily be copy/pasted. Once 1.5.0 has been out for a while, a copy of this will become mandatory for bug reports and support tickets on the forums.
- Add 64bit flag to environmental data.
- Announcements: Use feedparser >= 6.0.2 under Python 3.
- Backup: Add config flag
OCTOPRINT_BACKUP_RESTORE_UNSUPPORTEDto mark restore as unsupported.
- Pi Support: The plugin will now prominently display a warning message if OctoPrint is detected as running on a Raspberry Pi Zero/Zero W. This hardware has never been recommended due to severe performance issues that are not just caused by low powered CPU and RAM, contrary to what some sources on the internet might have claimed otherwise.
- Pi Support: Include throttle state in environmental data.
- Pi Support: Add support for file flag to enable local debug.
- Plugin Manager: Support version ranges for plugin notices from plugins.octoprint.org.
- Software Update: Support release channels for third party plugins.
- Software Update: Support update check overlay from plugins.octoprint.org.
- Software Update: Improve pip caller caching behaviour, speed up startup.
- Tracking: Include 32/64bit info in
- Virtual Printer: Implemented
M600with busy wait & prompt.
- Virtual Printer: Format strings for temperature report to simulate broken temperature formats.
- Virtual Printer: Support noise simulation on the line.
- Docs: Added version added info to hooks and API.
- Docs: More docs for
- Various dependency updates.
- Various refactorings.
- #3571 – Set sensible permissions on file uploads and work around restrictive permissions imposed by
- #3649 – Only ever send one line on
continue_sending. Otherwise we might spam our send queue, leading to a bunch of lines piling up inside it, making cancelling/pausing take longer and longer.
- #3658 – Application Keys: Fix typo in API documentation.
- #3679 – Fix issue causing saving of settings to not work if the serial communication timeout has been modified.
- #3668 – Plugin Manager: Turn plugin install asynchronous to not run into request timeouts during lengthy installation processes.
- #3686 – Fix default extrusion length display on the Control tab.
- #3687 – Fix matching of natively supported action commands to not take potential command parameters into account, like encountered on Marlin’s filament runout detection.
- #3689 – Fix server side handling of SockJS errors, leading to exception spam in Tornado due to unretrieved future exceptions.
- #3698 – Plugin Manager: Fix plugins provided in gzip no longer being supported. See also #3707.
- #3699 – Fix
M876not being force-sent while printing
- #3701 – Plugin Manager: Fix
file://URL generation for plugin installs under Windows
- #3702 – Application Keys: Fix manual key registration not showing when no keys are yet registered.
- #3704 – Fix JS error handling to not work when error tracking is disabled. See also #3706.
- #3705 – Fix watchdog not triggering on file renames in the watched folder, only on creation.
- #3722 – Backup: Fix issue with restore on some Python 3 setups.
- #3729 – Plugin Manager: Performance improvements and fixed memory leak in the frontend.
- #3731 – Fix exception on log download upon file change by switching to chunked encoding.
- #3740 – Remove default submit from settings forms.
- #3742 – Fix link to language packs.
- #3743 – GCODE viewer: Fix layer tooltip location.
- #3769 – Fix detection of virtual environments on newer versions of
virtualenvthat do not set
- #3790 – Plugin Manager: Fix an uncaught
TypeErrorwhen setting „Force the use of the
- #3796 – Fix handling of webcam permission, see also #3797.
- Don’t drop state messages on the socket, even if rate limiting is active. Otherwise we might drop a final switch to Offline and hence still displayed as connected when we are not.
- Gracefully handle non existing
- Treat wss/ws protocol as https/http in websocket origin check, see also this forum post.
- Double check download folder in
- Fix settings overlays, they were not merging the defaults.
- Make settings remove behave identical to get and set regarding defaults.
- Protect against a potential deadlock in
collectionsimports, as the latter will no longer be supported in Python 3.9.
- Get rid of an unnecessary double load of plugins during server startup.
- Discovery: Send three SSDP notify messages as defined in the spec, not just one.
- Software Update: Fix CLI.
- Various code fixes as pointed out by static analysis tools.