Releases: fraschetti/Octoslack
1.7.0 - G-code received event support, ETA calculation bug fix, and Slack API reconnection logic fixes
-
Added support for sending messages based on G-code received from the printer. The initial use case was to trigger a message for Marlin's filament sensor runout message although events can be configured for anything messages OctoPrint receives from your printer. It is recommended to use OctoPrint's Terminal feature find the text you want to match. In the case of Marlin's filament runout, the actual message received is "fsensor_update - M600" which is important to know so the correct match criteria will be used.
-
Expanded G-code event logic beyond the default 'Starts with' to include 'Ends with', 'Contains', and 'Regular expressions'
-
Fixed an ETA calculation where if the local OS time zone was not used, the time remaining value would not be included in the output. Thanks to @tedder for the bug report and patch.
-
ETA will no longer be included in messages if the printer isn't actually printing (print has finished, print has been cancelled, print is paused, etc.)
-
Reworked the Slack API WebSocket connection logic in an attempt to combat Octoslack bots going offline and not responding to requests via Slack channels. Added multiple layers of reconnection logic and WebSocket pings at 3 second intervals (as advised by Slack's own documentation).
1.6.2 - Slack image hosting, Timelapse upload support, & Imgur API workarounds
A quick hotfix to address the 1.6.1 release constantly prompting users to upgrade in OctoPrint.
-
Added support for hosting snapshot images and timelapse videos via Slack attachments. (thanks sillyfrog)
-
Added Timelapse video upload support. Amazon S3, Minio, and Slack are all supported but Imgur does not yet have full support for video uploads across all platforms and therefore is not supported. (thanks JoKneeMo)
-
Added an {eta} message variable with configurable time zone to convey the date/time OctoPrint has estimated the print to finish. (thanks sillyfrog)
-
Added an {ip_address} message variable to include the IPs of the current machine. (thanks trb0023)
-
Added a {printer_status} message variable which includes the same information typically included in the message footer but may be useful for Fallback messages.
-
Added a 'Printer status heartbeat' event which can be configured to send a printer status message every N minutes (configurable). The message state will mirror that of the printer health. (thanks uwezi)
-
Enabling the Raspberry Pi temperature option (enabled by default) on non-Raspberry Pi systems will now fail gracefully as opposed to logging a full exception + stack trace. (thanks cmeister2)
-
Added additional Slack RTM API reconnect logging to help diagnose clients who fail to reconnect.
-
Added an Imgur workaround to help address the 'Rate-limit' errors many are seeing. Unfortunately this is an Imgur issue (their servers no longer adhering to their own API spec). In reality, no rate limit has been hit; instead of returning a 403 (unauthorized) when an auth token is either uninitialized (as it is in the first use scenario) or invalid, they now return this odd rate-limit error. The workaround is to manually update the auth token before each upload as it is no longer reasonable to rely on Imgur to return the appropriate status code. 1.6.1 fixes an anomyous (no-Album) upload issue introduced in 1.6.0
-
Python code is now formatted using black
1.6.1 - Slack image hosting, Timelapse upload support, & Imgur API workarounds
A quick hotfix for the recent 1.6.0 release to resolve a Imgur upload issue for users not using an Album. All other changes below are from 1.6.0
-
Added support for hosting snapshot images and timelapse videos via Slack attachments. (thanks sillyfrog)
-
Added Timelapse video upload support. Amazon S3, Minio, and Slack are all supported but Imgur does not yet have full support for video uploads across all platforms and therefore is not supported. (thanks JoKneeMo)
-
Added an {eta} message variable with configurable time zone to convey the date/time OctoPrint has estimated the print to finish. (thanks sillyfrog)
-
Added an {ip_address} message variable to include the IPs of the current machine. (thanks trb0023)
-
Added a {printer_status} message variable which includes the same information typically included in the message footer but may be useful for Fallback messages.
-
Added a 'Printer status heartbeat' event which can be configured to send a printer status message every N minutes (configurable). The message state will mirror that of the printer health. (thanks uwezi)
-
Enabling the Raspberry Pi temperature option (enabled by default) on non-Raspberry Pi systems will now fail gracefully as opposed to logging a full exception + stack trace. (thanks cmeister2)
-
Added additional Slack RTM API reconnect logging to help diagnose clients who fail to reconnect.
-
Added an Imgur workaround to help address the 'Rate-limit' errors many are seeing. Unfortunately this is an Imgur issue (their servers no longer adhering to their own API spec). In reality, no rate limit has been hit; instead of returning a 403 (unauthorized) when an auth token is either uninitialized (as it is in the first use scenario) or invalid, they now return this odd rate-limit error. The workaround is to manually update the auth token before each upload as it is no longer reasonable to rely on Imgur to return the appropriate status code. 1.6.1 fixes an anomyous (no-Album) upload issue introduced in 1.6.0
-
Python code is now formatted using black
1.6.0 - Slack image hosting, Timelapse upload support, & Imgur 'rate limit' workaround
-
Added support for hosting snapshot images and timelapse videos via Slack attachments. (thanks sillyfrog)
-
Added Timelapse video upload support. Amazon S3, Minio, and Slack are all supported but Imgur does not yet have full support for video uploads across all platforms and therefore is not supported. (thanks JoKneeMo)
-
Added an {eta} message variable with configurable time zone to convey the date/time OctoPrint has estimated the print to finish. (thanks sillyfrog)
-
Added an {ip_address} message variable to include the IPs of the current machine. (thanks trb0023)
-
Added a {printer_status} message variable which includes the same information typically included in the message footer but may be useful for Fallback messages.
-
Added a 'Printer status heartbeat' event which can be configured to send a printer status message every N minutes (configurable). The message state will mirror that of the printer health. (thanks uwezi)
-
Enabling the Raspberry Pi temperature option (enabled by default) on non-Raspberry Pi systems will now fail gracefully as opposed to logging a full exception + stack trace. (thanks cmeister2)
-
Added additional Slack RTM API reconnect logging to help diagnose clients who fail to reconnect.
-
Added an Imgur workaround to help address the 'Rate-limit' errors many are seeing. Unfortunately this is an Imgur issue (their servers no longer adhering to their own API spec). In reality, no rate limit has been hit; instead of returning a 403 (unauthorized) when an auth token is either uninitialized (as it is in the first use scenario) or invalid, they now return this odd rate-limit error. The workaround is to manually update the auth token before each upload as it is no longer reasonable to rely on Imgur to return the appropriate status code.
-
Python code is now formatted using black
1.5.0 - Decoupling heavy lifting Octoslack logic from the main OctoPrint thread
-
By default all plugin logic (not just Octoslack) is apparently executed synchronously as part of the normal OctoPrint logic. While this may have its benefits, it does unfortunately put a heavy burden on the plugins to run quickly or else normal OctoPrint operations will suffer.
-
As an example, adding logic to the Octoslack event handlers to simply "sleep" for 30 seconds would result in an ongoing print stalling as a result of OctoPrint failing to send new G-code for that 30 second window.
-
Unfortunately this same behavior is possible if the individual or total time is significant for retrieving snapshots, combining snapshots, uploading snapshots, sending a Slack/MM message/etc.
-
The quick fix here (a two line change) is to gather some event/print/printer status info and then execute the rest of the (potentially long running) logic into a new thread which will keep OctoPrint running smoothly
1.4.3 - Imgur link and empty G-code listener fixes
-
Updating the Imgur site link to use HTTPS as Imgur no longer supports HTTP
-
Ignoring saved G-code event listeners with a blank 'G-code' field to avoid blindly triggering messages
1.4.2 - Upgrade prompt fix
- Bumping the version number to fix the upgrade prompt loop
1.4.1 - OctoPrint 1.3.6 compability release
- Updated the plugin set the Octoslack JS object in the global variable scope
1.4.0 - G-code and Z height change event support
- Adding G-code event support
- Adding Z height change event support
- Fixed a bug where S3 uploads were hardcoded to an 'Octoslack' bucket (Credit: ehippy)
- Multiple Slack RTM/API fixes including lWebSocket reconnection logic
- Integrating minio support (Credit: paepke)
1.2.2 - Auto-upgrade loop fix
1.2.1 was pushed to enable auto-updated via OctoPrint but the corresponding build version in setup.py was still back on 1.2.0. This unfortunately caused clients to repeatedly think they were not on the latest version.
This release also includes a tweak to the config dialog to avoid unnecessary pop-ups denoting a restart is required when switching between the Slack API Token and Web Hook. The pop-ups are still shown but not only when a restart is actually needed.