Commit graph

2,270 commits

Author SHA1 Message Date
Eric Callahan
8d4244ba87 power: improve device initialization
Remove duplicate code and improve error handling
during device init.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-07-13 13:52:52 -04:00
Eric Callahan
3072882495 power: add device polling
Implement optional polling for devices that are not updated
asynchronously.  GPIO, RF, Klipper, and MQTT devices are
excluded.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-07-13 13:52:52 -04:00
Eric Callahan
a6862fba03 power: klipper device improvements
Avoid binding to the detected unit name of the Klipper
service, if available.  Exclude all async notifications
sent when  the device is processing a request.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2025-07-12 06:18:14 -04:00
Eric Callahan
8d67e65c7f power: process initial bound services for uhubctl and klipper devices
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-07-12 06:17:14 -04:00
Eric Callahan
a78e704b0d power: add restrict action processing option
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-07-12 06:17:10 -04:00
Eric Callahan
06cdffa169
application: disable websocket pinging for older versions of tornado
Version of Tornado prior to 6.5.0 have a bug that may
prematurely close websocket connections when pinging
is enabled.  Disable pinging for Moonraker's websocket
server and spoolman's client.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-07-08 06:24:45 -04:00
Julien Batonnet
3c1f31874a simplyprint: Improve progess calculation mimicing what's being done in Mainsail and Fluidd
Signed-off-by: Julien Batonnet <julien.batonnet@gmail.com>
2025-07-06 12:40:35 -04:00
Karcsesz
6ff9a7ca7a docs: Fix typos and amend a missing field description
Signed-off-by: Veres Károly <git@karcsesz.hu>
2025-06-27 14:58:37 -04:00
Eric Callahan
12bfb15d64
docs: update documentation with latest changes
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-27 14:16:31 -04:00
Eric Callahan
826f0e3ea3
spoolman: fix ping timeout
Tornado client websockets treat the ping timeout differently
from server websockets.  The ping timeout should be less than
the ping interval.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-27 14:00:37 -04:00
Eric Callahan
bfdf2a91ef template: add debug logging environment global
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-27 10:41:04 -04:00
Eric Callahan
0cc941f7e0 build: bump tornado and dbus-fast
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-27 10:41:04 -04:00
Eric Callahan
bd266cdce2 eventloop: store reference to all background tasks
Newer versions of Python can potentially destroy tasks
before they are complete due to garbage collection.   To
prevent this a reference to all created tasks are kept in
a set and removed when the task is done.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-27 10:41:04 -04:00
Eric Callahan
0c848948b4 power: extend context for the mqtt state response
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-27 10:41:04 -04:00
Eric Callahan
dbe0dc4d08 update_manager: add report_anomalies option
Anomalies do not prevent updates, they are intended to alert
users of potential issues detected within an extension for
update.  Anomalies are always logged, however it is not
necessary for them to be reported to frontends.  This option
gives users the ability to silence anomalies on a per extension
basis.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-25 07:49:23 -04:00
Eric Callahan
ccbfd64989
analysis: remove trailing slash from dump url
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-12 05:20:05 -04:00
Eric Callahan
6d65a914a2
analysis: include route prefix in dump url
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-06-11 05:26:45 -04:00
Eric Callahan
0310d0be9f
build: bump pdm-backend version
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-05-22 11:44:36 -04:00
Eric Callahan
1c12414972 analysis: fix dump url detection
Don't use the detected public IP when the user
has configured Moonraker to listen exclusively
on the localhost.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-04-22 05:46:53 -04:00
Thijs Triemstra
5ee0adc553
docs: fix typos
Signed-off-by: Thijs Triemstra <info@collab.nl>
2025-04-19 05:22:23 -04:00
Icenowy Zheng
7cdcca3cb4 build: bump pillow for Python >=3.9
Pillow 10 does not support Python 3.13 and Pillow 11 does not support
Python 3.8.

Allowing Pillow from 9.5.0 to 11.1.0 in requirements to adapt Pillow 11
when it's available.

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
2025-04-03 10:32:01 -04:00
Pedro Lamas
63bcf0b99d power: removes extra space from command
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-04-03 05:21:46 -04:00
Eric Callahan
b90c96524c
server: skip pip recovery when the missing module is a component
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-03-26 05:53:25 -04:00
Eric Callahan
1226a08176 loghelper: add support for structured logging
Support logging to json structures, useful for log parsers
and analytics.  When enabled logging to stdout is still human
readable, so both forms of logging are available simultaneously.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2025-03-26 05:29:33 -04:00
Pedro Lamas
ebaa6645b2 metadata: improves Cura multi-extruder support
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-03-14 05:31:53 -04:00
Pedro Lamas
4eb23ef281 metadata: balanced quoted string split
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-03-06 11:43:52 -05:00
Wondro
18f3da59b0 file_manager: Fix total filament change count parsing for PS/SS
Signed-off-by: Tyler Wondrasek <wondro18@hotmail.com>
2025-03-03 05:30:56 -05:00
Eric Callahan
91b6bfbd09 workflows: update bug template
Add OctoApp to the client list.  Make it clear that moonaker.log is
required.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-03-01 08:10:00 -05:00
Wondro
4889a2dd38 file_manager: Added per tool weights and total filament change count metadata
Signed-off-by: Tyler Wondrasek <wondro18@hotmail.com>
2025-02-26 18:08:53 -05:00
moggieuk
9b4b3def44
file_manager: Added additional metadata to aid tool selection on single extruder multi-material prints
Added additional essential metdata for single extruder multi-material printing.  This is critical to new Mainsail functionality to map tools to MMU spools when using Happy Hare (Klipper MMU driver)

Signed-off-by: Paul Morgan (moggieuk@hotmail.com)
2025-02-26 12:32:10 -05:00
Eric Callahan
f2d53fe386 install: update package resolution method
Embed the sysdeps_parser module in the install script
for package dependency resolution.  This method is
more robust than the bash implementation and adds
support for the new requirement specifiers.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-21 16:54:12 -05:00
Eric Callahan
31cb1fc94c update_manager: use sysdeps_parser
Use the sysdeps_parser utility to parse the correct dependencies
out of the data returned by the configured system dependencies
json file.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-21 16:54:12 -05:00
Eric Callahan
4b4ca76558 utils: add sysdeps_parser utility module
This functionality is used by the update manager to parse
the result from system dependency files.  By moving it
out of the update manager it becomes easier to test,
extend, and maintain.  Additionally it can be embedded
in the install script.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2025-02-21 05:22:58 -05:00
Pedro Lamas
62051108ea docs: JSON typo fix
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-02-18 10:23:11 -05:00
Eric Callahan
a0164e1575
docs: typo fix
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 18:17:31 -05:00
Eric Callahan
c35353ed2a file_manager: delay file observer initialization
The addition of "gcode file processors" makes it possible
for processor registration to occur in "component_init".
The file observer init must be delayed until after all processors
are registered to correctly process metadata for gcode files
added while Moonraker was not running.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
35cb7501c6 docs: update analysis and metadata docs
Signed-off-by:  Eric Callahan
2025-02-17 15:32:45 -05:00
Eric Callahan
58f060730b analysis: add process endpoint
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
cb39c8c88a analysis: don't allow an estimate to update metadata
Early feedback is that replacing the "estimated_time" field of the metadata
with the value returned by Klipper Estimator is not sufficient.  The
post-process performed by Klipper Estimator also updates M73 gcode
commands, ETAs calculated based on progress are inaccurate without
these mods.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
a95405f800 file_manager: handle inotify edge move case
It is possible to create, move, then close a file.  Handle this case
by rescheduling the "create_file" event under the new name.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
1f4888cded analysis: change behavior of auto analysis
Perform a post-process with Klipper Estimator rather than
analyze and replace the "estimated_time" field in the metadata.
This updates the M73 commands in the gcode file, allowing for
more accurate ETAs.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
b8b28bc0c9 file_manager: add support for metadata gcode processors
Allow components to register gcode processors which will modify
the gcode file prior to metadata processing.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 08:06:46 -05:00
Eric Callahan
e338f537f5 pip_utils: handle exceptions when updating pip
Don't propagate exceptions when update_pip fails.  Some
systems may not be able to update pip, and the current
version of pip should be sufficient to install packages.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 08:06:46 -05:00
Pedro Lamas
ccbb03f5f3 docs: fixes invalid JSON in example
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-02-17 08:05:17 -05:00
Eric Callahan
354cc11b8e
docs: fix typos
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-12 06:28:53 -05:00
Eric Callahan
706455a6f8 source_info: include git worktree detection
Standard git repos contain a ".git" folder, however worktrees
contain a ".git" file.  The file provides the path to the worktree's
git directory.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-11 16:51:04 -05:00
Eric Callahan
2fcc542d85 docs: update documentation with latest changes
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-11 08:01:50 -05:00
Eric Callahan
f2c564cfb7 analysis: initial implementation
Adds support for GCode file time analysis using Klipper Estimator.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-11 08:01:50 -05:00
Eric Callahan
3ec968d873 python_deploy: update local state on refresh
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00
Eric Callahan
c7c2bb20d9 python_deploy: fix rollback procedure
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00