From 6e24de58eddd468cf8e2a96584d767951e728a86 Mon Sep 17 00:00:00 2001
From: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 20 Nov 2024 15:54:19 +0000
Subject: [PATCH] Publish new build of docs
---
.../_sources/configuration/config_yaml.rst.txt | 3 +++
maintenance/configuration/config_yaml.html | 3 +++
maintenance/genindex.html | 2 ++
maintenance/modules/index.html | 1 +
maintenance/modules/schema.html | 15 +++++++++++----
maintenance/searchindex.js | 2 +-
6 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/maintenance/_sources/configuration/config_yaml.rst.txt b/maintenance/_sources/configuration/config_yaml.rst.txt
index abd64ce4..39948026 100644
--- a/maintenance/_sources/configuration/config_yaml.rst.txt
+++ b/maintenance/_sources/configuration/config_yaml.rst.txt
@@ -1212,6 +1212,9 @@ Use the following settings to configure webcam support:
# Whether to include a "created with OctoPrint" watermark in the generated timelapse movies
watermark: true
+ # Delay to wait for after print end before rendering timelapse, in seconds. If another print gets started during this time, the rendering will be postponed.
+ renderAfterPrintDelay: 0
+
# Whether to flip the webcam horizontally
flipH: false
diff --git a/maintenance/configuration/config_yaml.html b/maintenance/configuration/config_yaml.html
index e2412165..f2ffcb05 100644
--- a/maintenance/configuration/config_yaml.html
+++ b/maintenance/configuration/config_yaml.html
@@ -1288,6 +1288,9 @@
# Whether to include a "created with OctoPrint" watermark in the generated timelapse movies
watermark: true
+ # Delay to wait for after print end before rendering timelapse, in seconds. If another print gets started during this time, the rendering will be postponed.
+ renderAfterPrintDelay: 0
+
# Whether to flip the webcam horizontally
flipH: false
diff --git a/maintenance/genindex.html b/maintenance/genindex.html
index cd44262e..d2df550e 100644
--- a/maintenance/genindex.html
+++ b/maintenance/genindex.html
@@ -3497,6 +3497,8 @@
R
remove_path_update_callback() (octoprint.settings.Settings method)
renderAfterPrint (octoprint.schema.config.webcam.TimelapseConfig attribute)
+
+ renderAfterPrintDelay (octoprint.schema.config.webcam.WebcamConfig attribute)
RenderAfterPrintEnum (class in octoprint.schema.config.webcam)
diff --git a/maintenance/modules/index.html b/maintenance/modules/index.html
index 1421d482..4e8e2af1 100644
--- a/maintenance/modules/index.html
+++ b/maintenance/modules/index.html
@@ -1293,6 +1293,7 @@
WebcamConfig.model_computed_fields
WebcamConfig.model_config
WebcamConfig.model_fields
+WebcamConfig.renderAfterPrintDelay
WebcamConfig.snapshotWebcam
WebcamConfig.timelapse
WebcamConfig.timelapseEnabled
diff --git a/maintenance/modules/schema.html b/maintenance/modules/schema.html
index 9367b158..5e31d3f2 100644
--- a/maintenance/modules/schema.html
+++ b/maintenance/modules/schema.html
@@ -808,6 +808,7 @@
WebcamConfig.model_computed_fields
WebcamConfig.model_config
WebcamConfig.model_fields
+WebcamConfig.renderAfterPrintDelay
WebcamConfig.snapshotWebcam
WebcamConfig.timelapse
WebcamConfig.timelapseEnabled
@@ -963,7 +964,7 @@
octoprint.schema.config
-
-class octoprint.schema.config.Config(*, accessControl: AccessControlConfig = AccessControlConfig(salt=None, userManager='octoprint.access.users.FilebasedUserManager', groupManager='octoprint.access.groups.FilebasedGroupManager', permissionManager='octoprint.access.permissions.PermissionManager', userfile=None, groupfile=None, autologinLocal=False, localNetworks=['127.0.0.0/8', '::1/128'], autologinAs=None, autologinHeadsupAcknowledged=False, trustBasicAuthentication=False, checkBasicAuthenticationPassword=True, trustRemoteUser=False, remoteUserHeader='REMOTE_USER', trustRemoteGroups=False, remoteGroupsHeader='REMOTE_GROUPS', remoteGroupsMapping={}, addRemoteUsers=False, defaultReauthenticationTimeout=5), api: ApiConfig = ApiConfig(key=None, apps={}, allowCrossOrigin=False), appearance: AppearanceConfig = AppearanceConfig(name='', color='default', colorTransparent=False, colorIcon=True, defaultLanguage='_default', showFahrenheitAlso=False, fuzzyTimes=True, closeModalsWithClick=True, showInternalFilename=True, components=ComponentConfig(order=ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'serial', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[]), disabled=ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[]))), controls: List[ControlConfig | ContainerConfig] = [], devel: DevelConfig = DevelConfig(stylesheet='css', cache=DevelCacheConfig(enabled=True, preemptive=True), webassets=DevelWebassetsConfig(bundle=True, clean_on_startup=True, minify=True, minify_plugins=False), useFrozenDictForPrinterState=True, showLoadingAnimation=True, sockJsConnectTimeout=30.0, pluginTimings=False, enableRateLimiter=True, enableCsrfProtection=True), estimation: EstimationConfig = EstimationConfig(printTime=PrintTimeEstimationConfig(statsWeighingUntil=0.5, validityRange=0.15, forceDumbFromPercent=0.3, forceDumbAfterMin=30.0, stableThreshold=60)), events: EventsConfig = EventsConfig(enabled=True, subscriptions=[]), feature: FeatureConfig = FeatureConfig(temperatureGraph=True, sdSupport=True, keyboardControl=True, pollWatched=False, modelSizeDetection=True, rememberFileFolder=False, printStartConfirmation=False, printCancelConfirmation=True, uploadOverwriteConfirmation=True, autoUppercaseBlacklist=['M117', 'M118', 'M707', 'M708'], g90InfluencesExtruder=False, enforceReallyUniversalFilenames=False, enableDragDropUpload=True), folder: FolderConfig = FolderConfig(uploads=None, timelapse=None, timelapse_tmp=None, logs=None, virtualSd=None, watched=None, plugins=None, slicingProfiles=None, printerProfiles=None, scripts=None, translations=None, generated=None, data=None), gcodeAnalysis: GcodeAnalysisConfig = GcodeAnalysisConfig(maxExtruders=10, throttle_normalprio=0.01, throttle_highprio=0.0, throttle_lines=100, runAt='idle', bedZ=0.0), plugins: PluginsConfig = PluginsConfig(disabled=[], forced_compatible=[], sorting_order={}, flags={}), printerParameters: PrinterParametersConfig = PrinterParametersConfig(pauseTriggers=[]), printerProfiles: PrinterProfilesConfig = PrinterProfilesConfig(default=None), scripts: ScriptsConfig = ScriptsConfig(gcode=GcodeScriptsConfig(afterPrinterConnected=None, beforePrinterDisconnected=None, beforePrintStarted=None, afterPrintCancelled="; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0", afterPrintDone=None, beforePrintPaused=None, afterPrintResumed=None, beforeToolChange=None, afterToolChange=None, snippets={'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'})), serial: SerialConfig = SerialConfig(port=None, baudrate=None, exclusive=True, lowLatency=False, autoconnect=False, autorefresh=True, autorefreshInterval=1, log=False, timeout=SerialTimeoutConfig(detectionFirst=10.0, detectionConsecutive=2.0, connection=10.0, communication=30.0, communicationBusy=3.0, temperature=5.0, temperatureTargetSet=2.0, temperatureAutoreport=2.0, sdStatus=1.0, sdStatusAutoreport=1.0, posAutoreport=5.0, resendOk=0.5, baudrateDetectionPause=1.0, positionLogWait=10.0), maxCommunicationTimeouts=SerialMaxTimeouts(idle=2, printing=5, long=5), maxWritePasses=5, additionalPorts=[], additionalBaudrates=[], blacklistedPorts=[], blacklistedBaudrates=[], longRunningCommands=['G4', 'G28', 'G29', 'G30', 'G32', 'M400', 'M226', 'M600'], blockedCommands=['M0', 'M1'], ignoredCommands=[], pausingCommands=['M0', 'M1', 'M25'], emergencyCommands=['M112', 'M108', 'M410'], checksumRequiringCommands=['M110'], helloCommand='M110 N0', suppressSecondHello=False, disconnectOnErrors=True, ignoreErrorsFromFirmware=False, terminalLogSize=20, lastLineBufferSize=50, logResends=True, supportResendsWithoutOk='detect', logPositionOnPause=True, logPositionOnCancel=False, abortHeatupOnCancel=True, waitForStartOnConnect=False, waitToLoadSdFileList=True, alwaysSendChecksum=False, neverSendChecksum=False, sendChecksumWithUnknownCommands=False, unknownCommandsNeedAck=False, sdRelativePath=False, sdAlwaysAvailable=False, sdLowerCase=False, sdCancelCommand='M25', maxNotSdPrinting=2, swallowOkAfterResend=True, repetierTargetTemp=False, externalHeatupDetection=True, supportWait=True, ignoreIdenticalResends=False, identicalResendsCountdown=7, supportFAsCommand=False, firmwareDetection=True, blockWhileDwelling=False, useParityWorkaround='detect', maxConsecutiveResends=10, sendM112OnError=True, disableSdPrintingDetection=False, ackMax=1, sanityCheckTools=True, notifySuppressedCommands='warn', capabilities=SerialCapabilities(autoreport_temp=True, autoreport_sdstatus=True, autoreport_pos=True, busy_protocol=True, emergency_parser=True, extended_m20=True, lfn_write=True), resendRatioThreshold=10, resendRatioStart=100, ignoreEmptyPorts=False, encoding='ascii', enableShutdownActionCommand=False, triggerOkForM29=True), server: ServerConfig = ServerConfig(host=None, port=5000, firstRun=True, startOnceInSafeMode=False, ignoreIncompleteStartup=False, seenWizards={}, secretKey=None, heartbeat=900, reverseProxy=ReverseProxyConfig(prefixHeader=None, schemeHeader=None, hostHeader=None, serverHeader=None, portHeader=None, prefixFallback=None, schemeFallback=None, hostFallback=None, serverFallback=None, portFallback=None, trustedProxies=[], trustLocalhostProxies=True), uploads=UploadsConfig(maxSize=1073741824, nameSuffix='name', pathSuffix='path'), maxSize=102400, commands=CommandsConfig(systemShutdownCommand=None, systemRestartCommand=None, serverRestartCommand=None, localPipCommand=None), onlineCheck=OnlineCheckConfig(enabled=None, interval=900, host='1.1.1.1', port=53, name='octoprint.org'), pluginBlacklist=PluginBlacklistConfig(enabled=None, url='https://plugins.octoprint.org/blacklist.json', ttl=900, timeout=3.05), pythonEolCheck=PythonEolCheckConfig(enabled=True, url='https://get.octoprint.org/python-eol', ttl=1440, fallback={'3.7': PythonEolEntry(date='2023-06-27', last_octoprint='1.11.*'), '3.8': PythonEolEntry(date='2024-10-31', last_octoprint=None)}), diskspace=DiskspaceConfig(warning=524288000, critical=209715200), preemptiveCache=PreemptiveCacheConfig(exceptions=[], until=7), ipCheck=IpCheckConfig(enabled=True, trustedSubnets=[]), allowFraming=False, cookies=CookiesConfig(secure=False, samesite='Lax'), allowedLoginRedirectPaths=[]), slicing: SlicingConfig = SlicingConfig(enabled=True, defaultSlicer=None, defaultProfiles={}), system: SystemConfig = SystemConfig(actions=[]), temperature: TemperatureConfig = TemperatureConfig(profiles=[TemperatureProfile(name='ABS', extruder=210, bed=100), TemperatureProfile(name='PLA', extruder=180, bed=60)], cutoff=30, sendAutomatically=False, sendAutomaticallyAfter=1), terminalFilters: List[TerminalFilterEntry] = [TerminalFilterEntry(name='Suppress temperature messages', regex='(Send: (N\\d+\\s+)?M105)|(Recv:\\s+(ok\\s+([PBN]\\d+\\s+)*)?([BCLPR]|T\\d*):-?\\d+)'), TerminalFilterEntry(name='Suppress SD status messages', regex='(Send: (N\\d+\\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'), TerminalFilterEntry(name='Suppress position messages', regex='(Send:\\s+(N\\d+\\s+)?M114)|(Recv:\\s+(ok\\s+)?X:[+-]?([0-9]*[.])?[0-9]+\\s+Y:[+-]?([0-9]*[.])?[0-9]+\\s+Z:[+-]?([0-9]*[.])?[0-9]+\\s+E\\d*:[+-]?([0-9]*[.])?[0-9]+).*'), TerminalFilterEntry(name='Suppress wait responses', regex='Recv: wait'), TerminalFilterEntry(name='Suppress processing responses', regex='Recv: (echo:\\s*)?busy:\\s*processing')], webcam: WebcamConfig = WebcamConfig(webcamEnabled=True, timelapseEnabled=True, ffmpeg=None, ffmpegThreads=1, ffmpegVideoCodec='libx264', bitrate='10000k', watermark=True, ffmpegCommandline='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays=7, defaultWebcam='classic', snapshotWebcam='classic'))
+class octoprint.schema.config.Config(*, accessControl: AccessControlConfig = AccessControlConfig(salt=None, userManager='octoprint.access.users.FilebasedUserManager', groupManager='octoprint.access.groups.FilebasedGroupManager', permissionManager='octoprint.access.permissions.PermissionManager', userfile=None, groupfile=None, autologinLocal=False, localNetworks=['127.0.0.0/8', '::1/128'], autologinAs=None, autologinHeadsupAcknowledged=False, trustBasicAuthentication=False, checkBasicAuthenticationPassword=True, trustRemoteUser=False, remoteUserHeader='REMOTE_USER', trustRemoteGroups=False, remoteGroupsHeader='REMOTE_GROUPS', remoteGroupsMapping={}, addRemoteUsers=False, defaultReauthenticationTimeout=5), api: ApiConfig = ApiConfig(key=None, apps={}, allowCrossOrigin=False), appearance: AppearanceConfig = AppearanceConfig(name='', color='default', colorTransparent=False, colorIcon=True, defaultLanguage='_default', showFahrenheitAlso=False, fuzzyTimes=True, closeModalsWithClick=True, showInternalFilename=True, components=ComponentConfig(order=ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'serial', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[]), disabled=ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[]))), controls: List[ControlConfig | ContainerConfig] = [], devel: DevelConfig = DevelConfig(stylesheet='css', cache=DevelCacheConfig(enabled=True, preemptive=True), webassets=DevelWebassetsConfig(bundle=True, clean_on_startup=True, minify=True, minify_plugins=False), useFrozenDictForPrinterState=True, showLoadingAnimation=True, sockJsConnectTimeout=30.0, pluginTimings=False, enableRateLimiter=True, enableCsrfProtection=True), estimation: EstimationConfig = EstimationConfig(printTime=PrintTimeEstimationConfig(statsWeighingUntil=0.5, validityRange=0.15, forceDumbFromPercent=0.3, forceDumbAfterMin=30.0, stableThreshold=60)), events: EventsConfig = EventsConfig(enabled=True, subscriptions=[]), feature: FeatureConfig = FeatureConfig(temperatureGraph=True, sdSupport=True, keyboardControl=True, pollWatched=False, modelSizeDetection=True, rememberFileFolder=False, printStartConfirmation=False, printCancelConfirmation=True, uploadOverwriteConfirmation=True, autoUppercaseBlacklist=['M117', 'M118', 'M707', 'M708'], g90InfluencesExtruder=False, enforceReallyUniversalFilenames=False, enableDragDropUpload=True), folder: FolderConfig = FolderConfig(uploads=None, timelapse=None, timelapse_tmp=None, logs=None, virtualSd=None, watched=None, plugins=None, slicingProfiles=None, printerProfiles=None, scripts=None, translations=None, generated=None, data=None), gcodeAnalysis: GcodeAnalysisConfig = GcodeAnalysisConfig(maxExtruders=10, throttle_normalprio=0.01, throttle_highprio=0.0, throttle_lines=100, runAt='idle', bedZ=0.0), plugins: PluginsConfig = PluginsConfig(disabled=[], forced_compatible=[], sorting_order={}, flags={}), printerParameters: PrinterParametersConfig = PrinterParametersConfig(pauseTriggers=[]), printerProfiles: PrinterProfilesConfig = PrinterProfilesConfig(default=None), scripts: ScriptsConfig = ScriptsConfig(gcode=GcodeScriptsConfig(afterPrinterConnected=None, beforePrinterDisconnected=None, beforePrintStarted=None, afterPrintCancelled="; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0", afterPrintDone=None, beforePrintPaused=None, afterPrintResumed=None, beforeToolChange=None, afterToolChange=None, snippets={'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'})), serial: SerialConfig = SerialConfig(port=None, baudrate=None, exclusive=True, lowLatency=False, autoconnect=False, autorefresh=True, autorefreshInterval=1, log=False, timeout=SerialTimeoutConfig(detectionFirst=10.0, detectionConsecutive=2.0, connection=10.0, communication=30.0, communicationBusy=3.0, temperature=5.0, temperatureTargetSet=2.0, temperatureAutoreport=2.0, sdStatus=1.0, sdStatusAutoreport=1.0, posAutoreport=5.0, resendOk=0.5, baudrateDetectionPause=1.0, positionLogWait=10.0), maxCommunicationTimeouts=SerialMaxTimeouts(idle=2, printing=5, long=5), maxWritePasses=5, additionalPorts=[], additionalBaudrates=[], blacklistedPorts=[], blacklistedBaudrates=[], longRunningCommands=['G4', 'G28', 'G29', 'G30', 'G32', 'M400', 'M226', 'M600'], blockedCommands=['M0', 'M1'], ignoredCommands=[], pausingCommands=['M0', 'M1', 'M25'], emergencyCommands=['M112', 'M108', 'M410'], checksumRequiringCommands=['M110'], helloCommand='M110 N0', suppressSecondHello=False, disconnectOnErrors=True, ignoreErrorsFromFirmware=False, terminalLogSize=20, lastLineBufferSize=50, logResends=True, supportResendsWithoutOk='detect', logPositionOnPause=True, logPositionOnCancel=False, abortHeatupOnCancel=True, waitForStartOnConnect=False, waitToLoadSdFileList=True, alwaysSendChecksum=False, neverSendChecksum=False, sendChecksumWithUnknownCommands=False, unknownCommandsNeedAck=False, sdRelativePath=False, sdAlwaysAvailable=False, sdLowerCase=False, sdCancelCommand='M25', maxNotSdPrinting=2, swallowOkAfterResend=True, repetierTargetTemp=False, externalHeatupDetection=True, supportWait=True, ignoreIdenticalResends=False, identicalResendsCountdown=7, supportFAsCommand=False, firmwareDetection=True, blockWhileDwelling=False, useParityWorkaround='detect', maxConsecutiveResends=10, sendM112OnError=True, disableSdPrintingDetection=False, ackMax=1, sanityCheckTools=True, notifySuppressedCommands='warn', capabilities=SerialCapabilities(autoreport_temp=True, autoreport_sdstatus=True, autoreport_pos=True, busy_protocol=True, emergency_parser=True, extended_m20=True, lfn_write=True), resendRatioThreshold=10, resendRatioStart=100, ignoreEmptyPorts=False, encoding='ascii', enableShutdownActionCommand=False, triggerOkForM29=True), server: ServerConfig = ServerConfig(host=None, port=5000, firstRun=True, startOnceInSafeMode=False, ignoreIncompleteStartup=False, seenWizards={}, secretKey=None, heartbeat=900, reverseProxy=ReverseProxyConfig(prefixHeader=None, schemeHeader=None, hostHeader=None, serverHeader=None, portHeader=None, prefixFallback=None, schemeFallback=None, hostFallback=None, serverFallback=None, portFallback=None, trustedProxies=[], trustLocalhostProxies=True), uploads=UploadsConfig(maxSize=1073741824, nameSuffix='name', pathSuffix='path'), maxSize=102400, commands=CommandsConfig(systemShutdownCommand=None, systemRestartCommand=None, serverRestartCommand=None, localPipCommand=None), onlineCheck=OnlineCheckConfig(enabled=None, interval=900, host='1.1.1.1', port=53, name='octoprint.org'), pluginBlacklist=PluginBlacklistConfig(enabled=None, url='https://plugins.octoprint.org/blacklist.json', ttl=900, timeout=3.05), pythonEolCheck=PythonEolCheckConfig(enabled=True, url='https://get.octoprint.org/python-eol', ttl=1440, fallback={'3.7': PythonEolEntry(date='2023-06-27', last_octoprint='1.11.*'), '3.8': PythonEolEntry(date='2024-10-31', last_octoprint=None)}), diskspace=DiskspaceConfig(warning=524288000, critical=209715200), preemptiveCache=PreemptiveCacheConfig(exceptions=[], until=7), ipCheck=IpCheckConfig(enabled=True, trustedSubnets=[]), allowFraming=False, cookies=CookiesConfig(secure=False, samesite='Lax'), allowedLoginRedirectPaths=[]), slicing: SlicingConfig = SlicingConfig(enabled=True, defaultSlicer=None, defaultProfiles={}), system: SystemConfig = SystemConfig(actions=[]), temperature: TemperatureConfig = TemperatureConfig(profiles=[TemperatureProfile(name='ABS', extruder=210, bed=100), TemperatureProfile(name='PLA', extruder=180, bed=60)], cutoff=30, sendAutomatically=False, sendAutomaticallyAfter=1), terminalFilters: List[TerminalFilterEntry] = [TerminalFilterEntry(name='Suppress temperature messages', regex='(Send: (N\\d+\\s+)?M105)|(Recv:\\s+(ok\\s+([PBN]\\d+\\s+)*)?([BCLPR]|T\\d*):-?\\d+)'), TerminalFilterEntry(name='Suppress SD status messages', regex='(Send: (N\\d+\\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'), TerminalFilterEntry(name='Suppress position messages', regex='(Send:\\s+(N\\d+\\s+)?M114)|(Recv:\\s+(ok\\s+)?X:[+-]?([0-9]*[.])?[0-9]+\\s+Y:[+-]?([0-9]*[.])?[0-9]+\\s+Z:[+-]?([0-9]*[.])?[0-9]+\\s+E\\d*:[+-]?([0-9]*[.])?[0-9]+).*'), TerminalFilterEntry(name='Suppress wait responses', regex='Recv: wait'), TerminalFilterEntry(name='Suppress processing responses', regex='Recv: (echo:\\s*)?busy:\\s*processing')], webcam: WebcamConfig = WebcamConfig(webcamEnabled=True, timelapseEnabled=True, ffmpeg=None, ffmpegThreads=1, ffmpegVideoCodec='libx264', bitrate='10000k', watermark=True, ffmpegCommandline='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays=7, renderAfterPrintDelay=0, defaultWebcam='classic', snapshotWebcam='classic'))
-
accessControl: AccessControlConfig
@@ -1028,7 +1029,7 @@
-
-model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessControl': FieldInfo(annotation=AccessControlConfig, required=False, default=AccessControlConfig(salt=None, userManager='octoprint.access.users.FilebasedUserManager', groupManager='octoprint.access.groups.FilebasedGroupManager', permissionManager='octoprint.access.permissions.PermissionManager', userfile=None, groupfile=None, autologinLocal=False, localNetworks=['127.0.0.0/8', '::1/128'], autologinAs=None, autologinHeadsupAcknowledged=False, trustBasicAuthentication=False, checkBasicAuthenticationPassword=True, trustRemoteUser=False, remoteUserHeader='REMOTE_USER', trustRemoteGroups=False, remoteGroupsHeader='REMOTE_GROUPS', remoteGroupsMapping={}, addRemoteUsers=False, defaultReauthenticationTimeout=5)), 'api': FieldInfo(annotation=ApiConfig, required=False, default=ApiConfig(key=None, apps={}, allowCrossOrigin=False)), 'appearance': FieldInfo(annotation=AppearanceConfig, required=False, default=AppearanceConfig(name='', color='default', colorTransparent=False, colorIcon=True, defaultLanguage='_default', showFahrenheitAlso=False, fuzzyTimes=True, closeModalsWithClick=True, showInternalFilename=True, components=ComponentConfig(order=ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'serial', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[]), disabled=ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[])))), 'controls': FieldInfo(annotation=List[Union[ControlConfig, ContainerConfig]], required=False, default=[]), 'devel': FieldInfo(annotation=DevelConfig, required=False, default=DevelConfig(stylesheet='css', cache=DevelCacheConfig(enabled=True, preemptive=True), webassets=DevelWebassetsConfig(bundle=True, clean_on_startup=True, minify=True, minify_plugins=False), useFrozenDictForPrinterState=True, showLoadingAnimation=True, sockJsConnectTimeout=30.0, pluginTimings=False, enableRateLimiter=True, enableCsrfProtection=True)), 'estimation': FieldInfo(annotation=EstimationConfig, required=False, default=EstimationConfig(printTime=PrintTimeEstimationConfig(statsWeighingUntil=0.5, validityRange=0.15, forceDumbFromPercent=0.3, forceDumbAfterMin=30.0, stableThreshold=60))), 'events': FieldInfo(annotation=EventsConfig, required=False, default=EventsConfig(enabled=True, subscriptions=[])), 'feature': FieldInfo(annotation=FeatureConfig, required=False, default=FeatureConfig(temperatureGraph=True, sdSupport=True, keyboardControl=True, pollWatched=False, modelSizeDetection=True, rememberFileFolder=False, printStartConfirmation=False, printCancelConfirmation=True, uploadOverwriteConfirmation=True, autoUppercaseBlacklist=['M117', 'M118', 'M707', 'M708'], g90InfluencesExtruder=False, enforceReallyUniversalFilenames=False, enableDragDropUpload=True)), 'folder': FieldInfo(annotation=FolderConfig, required=False, default=FolderConfig(uploads=None, timelapse=None, timelapse_tmp=None, logs=None, virtualSd=None, watched=None, plugins=None, slicingProfiles=None, printerProfiles=None, scripts=None, translations=None, generated=None, data=None)), 'gcodeAnalysis': FieldInfo(annotation=GcodeAnalysisConfig, required=False, default=GcodeAnalysisConfig(maxExtruders=10, throttle_normalprio=0.01, throttle_highprio=0.0, throttle_lines=100, runAt='idle', bedZ=0.0)), 'plugins': FieldInfo(annotation=PluginsConfig, required=False, default=PluginsConfig(disabled=[], forced_compatible=[], sorting_order={}, flags={})), 'printerParameters': FieldInfo(annotation=PrinterParametersConfig, required=False, default=PrinterParametersConfig(pauseTriggers=[])), 'printerProfiles': FieldInfo(annotation=PrinterProfilesConfig, required=False, default=PrinterProfilesConfig(default=None)), 'scripts': FieldInfo(annotation=ScriptsConfig, required=False, default=ScriptsConfig(gcode=GcodeScriptsConfig(afterPrinterConnected=None, beforePrinterDisconnected=None, beforePrintStarted=None, afterPrintCancelled="; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0", afterPrintDone=None, beforePrintPaused=None, afterPrintResumed=None, beforeToolChange=None, afterToolChange=None, snippets={'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'}))), 'serial': FieldInfo(annotation=SerialConfig, required=False, default=SerialConfig(port=None, baudrate=None, exclusive=True, lowLatency=False, autoconnect=False, autorefresh=True, autorefreshInterval=1, log=False, timeout=SerialTimeoutConfig(detectionFirst=10.0, detectionConsecutive=2.0, connection=10.0, communication=30.0, communicationBusy=3.0, temperature=5.0, temperatureTargetSet=2.0, temperatureAutoreport=2.0, sdStatus=1.0, sdStatusAutoreport=1.0, posAutoreport=5.0, resendOk=0.5, baudrateDetectionPause=1.0, positionLogWait=10.0), maxCommunicationTimeouts=SerialMaxTimeouts(idle=2, printing=5, long=5), maxWritePasses=5, additionalPorts=[], additionalBaudrates=[], blacklistedPorts=[], blacklistedBaudrates=[], longRunningCommands=['G4', 'G28', 'G29', 'G30', 'G32', 'M400', 'M226', 'M600'], blockedCommands=['M0', 'M1'], ignoredCommands=[], pausingCommands=['M0', 'M1', 'M25'], emergencyCommands=['M112', 'M108', 'M410'], checksumRequiringCommands=['M110'], helloCommand='M110 N0', suppressSecondHello=False, disconnectOnErrors=True, ignoreErrorsFromFirmware=False, terminalLogSize=20, lastLineBufferSize=50, logResends=True, supportResendsWithoutOk='detect', logPositionOnPause=True, logPositionOnCancel=False, abortHeatupOnCancel=True, waitForStartOnConnect=False, waitToLoadSdFileList=True, alwaysSendChecksum=False, neverSendChecksum=False, sendChecksumWithUnknownCommands=False, unknownCommandsNeedAck=False, sdRelativePath=False, sdAlwaysAvailable=False, sdLowerCase=False, sdCancelCommand='M25', maxNotSdPrinting=2, swallowOkAfterResend=True, repetierTargetTemp=False, externalHeatupDetection=True, supportWait=True, ignoreIdenticalResends=False, identicalResendsCountdown=7, supportFAsCommand=False, firmwareDetection=True, blockWhileDwelling=False, useParityWorkaround='detect', maxConsecutiveResends=10, sendM112OnError=True, disableSdPrintingDetection=False, ackMax=1, sanityCheckTools=True, notifySuppressedCommands='warn', capabilities=SerialCapabilities(autoreport_temp=True, autoreport_sdstatus=True, autoreport_pos=True, busy_protocol=True, emergency_parser=True, extended_m20=True, lfn_write=True), resendRatioThreshold=10, resendRatioStart=100, ignoreEmptyPorts=False, encoding='ascii', enableShutdownActionCommand=False, triggerOkForM29=True)), 'server': FieldInfo(annotation=ServerConfig, required=False, default=ServerConfig(host=None, port=5000, firstRun=True, startOnceInSafeMode=False, ignoreIncompleteStartup=False, seenWizards={}, secretKey=None, heartbeat=900, reverseProxy=ReverseProxyConfig(prefixHeader=None, schemeHeader=None, hostHeader=None, serverHeader=None, portHeader=None, prefixFallback=None, schemeFallback=None, hostFallback=None, serverFallback=None, portFallback=None, trustedProxies=[], trustLocalhostProxies=True), uploads=UploadsConfig(maxSize=1073741824, nameSuffix='name', pathSuffix='path'), maxSize=102400, commands=CommandsConfig(systemShutdownCommand=None, systemRestartCommand=None, serverRestartCommand=None, localPipCommand=None), onlineCheck=OnlineCheckConfig(enabled=None, interval=900, host='1.1.1.1', port=53, name='octoprint.org'), pluginBlacklist=PluginBlacklistConfig(enabled=None, url='https://plugins.octoprint.org/blacklist.json', ttl=900, timeout=3.05), pythonEolCheck=PythonEolCheckConfig(enabled=True, url='https://get.octoprint.org/python-eol', ttl=1440, fallback={'3.7': PythonEolEntry(date='2023-06-27', last_octoprint='1.11.*'), '3.8': PythonEolEntry(date='2024-10-31', last_octoprint=None)}), diskspace=DiskspaceConfig(warning=524288000, critical=209715200), preemptiveCache=PreemptiveCacheConfig(exceptions=[], until=7), ipCheck=IpCheckConfig(enabled=True, trustedSubnets=[]), allowFraming=False, cookies=CookiesConfig(secure=False, samesite='Lax'), allowedLoginRedirectPaths=[])), 'slicing': FieldInfo(annotation=SlicingConfig, required=False, default=SlicingConfig(enabled=True, defaultSlicer=None, defaultProfiles={})), 'system': FieldInfo(annotation=SystemConfig, required=False, default=SystemConfig(actions=[])), 'temperature': FieldInfo(annotation=TemperatureConfig, required=False, default=TemperatureConfig(profiles=[TemperatureProfile(name='ABS', extruder=210, bed=100), TemperatureProfile(name='PLA', extruder=180, bed=60)], cutoff=30, sendAutomatically=False, sendAutomaticallyAfter=1)), 'terminalFilters': FieldInfo(annotation=List[TerminalFilterEntry], required=False, default=[TerminalFilterEntry(name='Suppress temperature messages', regex='(Send: (N\\d+\\s+)?M105)|(Recv:\\s+(ok\\s+([PBN]\\d+\\s+)*)?([BCLPR]|T\\d*):-?\\d+)'), TerminalFilterEntry(name='Suppress SD status messages', regex='(Send: (N\\d+\\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'), TerminalFilterEntry(name='Suppress position messages', regex='(Send:\\s+(N\\d+\\s+)?M114)|(Recv:\\s+(ok\\s+)?X:[+-]?([0-9]*[.])?[0-9]+\\s+Y:[+-]?([0-9]*[.])?[0-9]+\\s+Z:[+-]?([0-9]*[.])?[0-9]+\\s+E\\d*:[+-]?([0-9]*[.])?[0-9]+).*'), TerminalFilterEntry(name='Suppress wait responses', regex='Recv: wait'), TerminalFilterEntry(name='Suppress processing responses', regex='Recv: (echo:\\s*)?busy:\\s*processing')]), 'webcam': FieldInfo(annotation=WebcamConfig, required=False, default=WebcamConfig(webcamEnabled=True, timelapseEnabled=True, ffmpeg=None, ffmpegThreads=1, ffmpegVideoCodec='libx264', bitrate='10000k', watermark=True, ffmpegCommandline='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays=7, defaultWebcam='classic', snapshotWebcam='classic'))}
+model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessControl': FieldInfo(annotation=AccessControlConfig, required=False, default=AccessControlConfig(salt=None, userManager='octoprint.access.users.FilebasedUserManager', groupManager='octoprint.access.groups.FilebasedGroupManager', permissionManager='octoprint.access.permissions.PermissionManager', userfile=None, groupfile=None, autologinLocal=False, localNetworks=['127.0.0.0/8', '::1/128'], autologinAs=None, autologinHeadsupAcknowledged=False, trustBasicAuthentication=False, checkBasicAuthenticationPassword=True, trustRemoteUser=False, remoteUserHeader='REMOTE_USER', trustRemoteGroups=False, remoteGroupsHeader='REMOTE_GROUPS', remoteGroupsMapping={}, addRemoteUsers=False, defaultReauthenticationTimeout=5)), 'api': FieldInfo(annotation=ApiConfig, required=False, default=ApiConfig(key=None, apps={}, allowCrossOrigin=False)), 'appearance': FieldInfo(annotation=AppearanceConfig, required=False, default=AppearanceConfig(name='', color='default', colorTransparent=False, colorIcon=True, defaultLanguage='_default', showFahrenheitAlso=False, fuzzyTimes=True, closeModalsWithClick=True, showInternalFilename=True, components=ComponentConfig(order=ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'serial', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[]), disabled=ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[])))), 'controls': FieldInfo(annotation=List[Union[ControlConfig, ContainerConfig]], required=False, default=[]), 'devel': FieldInfo(annotation=DevelConfig, required=False, default=DevelConfig(stylesheet='css', cache=DevelCacheConfig(enabled=True, preemptive=True), webassets=DevelWebassetsConfig(bundle=True, clean_on_startup=True, minify=True, minify_plugins=False), useFrozenDictForPrinterState=True, showLoadingAnimation=True, sockJsConnectTimeout=30.0, pluginTimings=False, enableRateLimiter=True, enableCsrfProtection=True)), 'estimation': FieldInfo(annotation=EstimationConfig, required=False, default=EstimationConfig(printTime=PrintTimeEstimationConfig(statsWeighingUntil=0.5, validityRange=0.15, forceDumbFromPercent=0.3, forceDumbAfterMin=30.0, stableThreshold=60))), 'events': FieldInfo(annotation=EventsConfig, required=False, default=EventsConfig(enabled=True, subscriptions=[])), 'feature': FieldInfo(annotation=FeatureConfig, required=False, default=FeatureConfig(temperatureGraph=True, sdSupport=True, keyboardControl=True, pollWatched=False, modelSizeDetection=True, rememberFileFolder=False, printStartConfirmation=False, printCancelConfirmation=True, uploadOverwriteConfirmation=True, autoUppercaseBlacklist=['M117', 'M118', 'M707', 'M708'], g90InfluencesExtruder=False, enforceReallyUniversalFilenames=False, enableDragDropUpload=True)), 'folder': FieldInfo(annotation=FolderConfig, required=False, default=FolderConfig(uploads=None, timelapse=None, timelapse_tmp=None, logs=None, virtualSd=None, watched=None, plugins=None, slicingProfiles=None, printerProfiles=None, scripts=None, translations=None, generated=None, data=None)), 'gcodeAnalysis': FieldInfo(annotation=GcodeAnalysisConfig, required=False, default=GcodeAnalysisConfig(maxExtruders=10, throttle_normalprio=0.01, throttle_highprio=0.0, throttle_lines=100, runAt='idle', bedZ=0.0)), 'plugins': FieldInfo(annotation=PluginsConfig, required=False, default=PluginsConfig(disabled=[], forced_compatible=[], sorting_order={}, flags={})), 'printerParameters': FieldInfo(annotation=PrinterParametersConfig, required=False, default=PrinterParametersConfig(pauseTriggers=[])), 'printerProfiles': FieldInfo(annotation=PrinterProfilesConfig, required=False, default=PrinterProfilesConfig(default=None)), 'scripts': FieldInfo(annotation=ScriptsConfig, required=False, default=ScriptsConfig(gcode=GcodeScriptsConfig(afterPrinterConnected=None, beforePrinterDisconnected=None, beforePrintStarted=None, afterPrintCancelled="; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0", afterPrintDone=None, beforePrintPaused=None, afterPrintResumed=None, beforeToolChange=None, afterToolChange=None, snippets={'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'}))), 'serial': FieldInfo(annotation=SerialConfig, required=False, default=SerialConfig(port=None, baudrate=None, exclusive=True, lowLatency=False, autoconnect=False, autorefresh=True, autorefreshInterval=1, log=False, timeout=SerialTimeoutConfig(detectionFirst=10.0, detectionConsecutive=2.0, connection=10.0, communication=30.0, communicationBusy=3.0, temperature=5.0, temperatureTargetSet=2.0, temperatureAutoreport=2.0, sdStatus=1.0, sdStatusAutoreport=1.0, posAutoreport=5.0, resendOk=0.5, baudrateDetectionPause=1.0, positionLogWait=10.0), maxCommunicationTimeouts=SerialMaxTimeouts(idle=2, printing=5, long=5), maxWritePasses=5, additionalPorts=[], additionalBaudrates=[], blacklistedPorts=[], blacklistedBaudrates=[], longRunningCommands=['G4', 'G28', 'G29', 'G30', 'G32', 'M400', 'M226', 'M600'], blockedCommands=['M0', 'M1'], ignoredCommands=[], pausingCommands=['M0', 'M1', 'M25'], emergencyCommands=['M112', 'M108', 'M410'], checksumRequiringCommands=['M110'], helloCommand='M110 N0', suppressSecondHello=False, disconnectOnErrors=True, ignoreErrorsFromFirmware=False, terminalLogSize=20, lastLineBufferSize=50, logResends=True, supportResendsWithoutOk='detect', logPositionOnPause=True, logPositionOnCancel=False, abortHeatupOnCancel=True, waitForStartOnConnect=False, waitToLoadSdFileList=True, alwaysSendChecksum=False, neverSendChecksum=False, sendChecksumWithUnknownCommands=False, unknownCommandsNeedAck=False, sdRelativePath=False, sdAlwaysAvailable=False, sdLowerCase=False, sdCancelCommand='M25', maxNotSdPrinting=2, swallowOkAfterResend=True, repetierTargetTemp=False, externalHeatupDetection=True, supportWait=True, ignoreIdenticalResends=False, identicalResendsCountdown=7, supportFAsCommand=False, firmwareDetection=True, blockWhileDwelling=False, useParityWorkaround='detect', maxConsecutiveResends=10, sendM112OnError=True, disableSdPrintingDetection=False, ackMax=1, sanityCheckTools=True, notifySuppressedCommands='warn', capabilities=SerialCapabilities(autoreport_temp=True, autoreport_sdstatus=True, autoreport_pos=True, busy_protocol=True, emergency_parser=True, extended_m20=True, lfn_write=True), resendRatioThreshold=10, resendRatioStart=100, ignoreEmptyPorts=False, encoding='ascii', enableShutdownActionCommand=False, triggerOkForM29=True)), 'server': FieldInfo(annotation=ServerConfig, required=False, default=ServerConfig(host=None, port=5000, firstRun=True, startOnceInSafeMode=False, ignoreIncompleteStartup=False, seenWizards={}, secretKey=None, heartbeat=900, reverseProxy=ReverseProxyConfig(prefixHeader=None, schemeHeader=None, hostHeader=None, serverHeader=None, portHeader=None, prefixFallback=None, schemeFallback=None, hostFallback=None, serverFallback=None, portFallback=None, trustedProxies=[], trustLocalhostProxies=True), uploads=UploadsConfig(maxSize=1073741824, nameSuffix='name', pathSuffix='path'), maxSize=102400, commands=CommandsConfig(systemShutdownCommand=None, systemRestartCommand=None, serverRestartCommand=None, localPipCommand=None), onlineCheck=OnlineCheckConfig(enabled=None, interval=900, host='1.1.1.1', port=53, name='octoprint.org'), pluginBlacklist=PluginBlacklistConfig(enabled=None, url='https://plugins.octoprint.org/blacklist.json', ttl=900, timeout=3.05), pythonEolCheck=PythonEolCheckConfig(enabled=True, url='https://get.octoprint.org/python-eol', ttl=1440, fallback={'3.7': PythonEolEntry(date='2023-06-27', last_octoprint='1.11.*'), '3.8': PythonEolEntry(date='2024-10-31', last_octoprint=None)}), diskspace=DiskspaceConfig(warning=524288000, critical=209715200), preemptiveCache=PreemptiveCacheConfig(exceptions=[], until=7), ipCheck=IpCheckConfig(enabled=True, trustedSubnets=[]), allowFraming=False, cookies=CookiesConfig(secure=False, samesite='Lax'), allowedLoginRedirectPaths=[])), 'slicing': FieldInfo(annotation=SlicingConfig, required=False, default=SlicingConfig(enabled=True, defaultSlicer=None, defaultProfiles={})), 'system': FieldInfo(annotation=SystemConfig, required=False, default=SystemConfig(actions=[])), 'temperature': FieldInfo(annotation=TemperatureConfig, required=False, default=TemperatureConfig(profiles=[TemperatureProfile(name='ABS', extruder=210, bed=100), TemperatureProfile(name='PLA', extruder=180, bed=60)], cutoff=30, sendAutomatically=False, sendAutomaticallyAfter=1)), 'terminalFilters': FieldInfo(annotation=List[TerminalFilterEntry], required=False, default=[TerminalFilterEntry(name='Suppress temperature messages', regex='(Send: (N\\d+\\s+)?M105)|(Recv:\\s+(ok\\s+([PBN]\\d+\\s+)*)?([BCLPR]|T\\d*):-?\\d+)'), TerminalFilterEntry(name='Suppress SD status messages', regex='(Send: (N\\d+\\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'), TerminalFilterEntry(name='Suppress position messages', regex='(Send:\\s+(N\\d+\\s+)?M114)|(Recv:\\s+(ok\\s+)?X:[+-]?([0-9]*[.])?[0-9]+\\s+Y:[+-]?([0-9]*[.])?[0-9]+\\s+Z:[+-]?([0-9]*[.])?[0-9]+\\s+E\\d*:[+-]?([0-9]*[.])?[0-9]+).*'), TerminalFilterEntry(name='Suppress wait responses', regex='Recv: wait'), TerminalFilterEntry(name='Suppress processing responses', regex='Recv: (echo:\\s*)?busy:\\s*processing')]), 'webcam': FieldInfo(annotation=WebcamConfig, required=False, default=WebcamConfig(webcamEnabled=True, timelapseEnabled=True, ffmpeg=None, ffmpegThreads=1, ffmpegVideoCodec='libx264', bitrate='10000k', watermark=True, ffmpegCommandline='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays=7, renderAfterPrintDelay=0, defaultWebcam='classic', snapshotWebcam='classic'))}
Metadata about the fields defined on the model,
mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
@@ -4552,7 +4553,7 @@
-
-class octoprint.schema.config.webcam.WebcamConfig(*, webcamEnabled: bool = True, timelapseEnabled: bool = True, ffmpeg: str | None = None, ffmpegThreads: int = 1, ffmpegVideoCodec: str = 'libx264', bitrate: str = '10000k', watermark: bool = True, ffmpegCommandline: str = '{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline: str = '{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse: TimelapseConfig = TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays: int = 7, defaultWebcam: str = 'classic', snapshotWebcam: str = 'classic')
+class octoprint.schema.config.webcam.WebcamConfig(*, webcamEnabled: bool = True, timelapseEnabled: bool = True, ffmpeg: str | None = None, ffmpegThreads: int = 1, ffmpegVideoCodec: str = 'libx264', bitrate: str = '10000k', watermark: bool = True, ffmpegCommandline: str = '{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline: str = '{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse: TimelapseConfig = TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays: int = 7, renderAfterPrintDelay: int = 0, defaultWebcam: str = 'classic', snapshotWebcam: str = 'classic')
-
bitrate: str
@@ -4613,12 +4614,18 @@
-
-model_fields: ClassVar[Dict[str, FieldInfo]] = {'bitrate': FieldInfo(annotation=str, required=False, default='10000k', description='The bitrate to use for rendering the timelapse video. This gets directly passed to ffmpeg.'), 'cleanTmpAfterDays': FieldInfo(annotation=int, required=False, default=7, description='After how many days unrendered timelapses will be deleted.'), 'defaultWebcam': FieldInfo(annotation=str, required=False, default='classic', description='The name of the default webcam'), 'ffmpeg': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Path to ffmpeg binary to use for creating timelapse recordings. Timelapse support will be disabled if not set.'), 'ffmpegCommandline': FieldInfo(annotation=str, required=False, default='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"'), 'ffmpegThreads': FieldInfo(annotation=int, required=False, default=1, description='Number of how many threads to instruct ffmpeg to use for encoding.'), 'ffmpegThumbnailCommandline': FieldInfo(annotation=str, required=False, default='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"'), 'ffmpegVideoCodec': FieldInfo(annotation=str, required=False, default='libx264', description='Videocodec to be used for encoding.'), 'snapshotWebcam': FieldInfo(annotation=str, required=False, default='classic', description='The name of the default webcam to use for snapshots'), 'timelapse': FieldInfo(annotation=TimelapseConfig, required=False, default=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), description='The default timelapse settings.'), 'timelapseEnabled': FieldInfo(annotation=bool, required=False, default=True, description='Use this option to enable timelapse support via snapshot, e.g. via MJPG-Streamer. Timelapse support will be disabled if not set.'), 'watermark': FieldInfo(annotation=bool, required=False, default=True, description='Whether to include a "created with OctoPrint" watermark in the generated timelapse recordings.'), 'webcamEnabled': FieldInfo(annotation=bool, required=False, default=True, description='Use this option to enable display of a webcam stream in the UI, e.g. via MJPG-Streamer. Webcam support will be disabled if not set.')}
+model_fields: ClassVar[Dict[str, FieldInfo]] = {'bitrate': FieldInfo(annotation=str, required=False, default='10000k', description='The bitrate to use for rendering the timelapse video. This gets directly passed to ffmpeg.'), 'cleanTmpAfterDays': FieldInfo(annotation=int, required=False, default=7, description='After how many days unrendered timelapses will be deleted.'), 'defaultWebcam': FieldInfo(annotation=str, required=False, default='classic', description='The name of the default webcam'), 'ffmpeg': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Path to ffmpeg binary to use for creating timelapse recordings. Timelapse support will be disabled if not set.'), 'ffmpegCommandline': FieldInfo(annotation=str, required=False, default='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"'), 'ffmpegThreads': FieldInfo(annotation=int, required=False, default=1, description='Number of how many threads to instruct ffmpeg to use for encoding.'), 'ffmpegThumbnailCommandline': FieldInfo(annotation=str, required=False, default='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"'), 'ffmpegVideoCodec': FieldInfo(annotation=str, required=False, default='libx264', description='Videocodec to be used for encoding.'), 'renderAfterPrintDelay': FieldInfo(annotation=int, required=False, default=0, description='Delay to wait for after print end before rendering timelapse, in seconds. If another print gets started during this time, the rendering will be postponed.'), 'snapshotWebcam': FieldInfo(annotation=str, required=False, default='classic', description='The name of the default webcam to use for snapshots'), 'timelapse': FieldInfo(annotation=TimelapseConfig, required=False, default=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), description='The default timelapse settings.'), 'timelapseEnabled': FieldInfo(annotation=bool, required=False, default=True, description='Use this option to enable timelapse support via snapshot, e.g. via MJPG-Streamer. Timelapse support will be disabled if not set.'), 'watermark': FieldInfo(annotation=bool, required=False, default=True, description='Whether to include a "created with OctoPrint" watermark in the generated timelapse recordings.'), 'webcamEnabled': FieldInfo(annotation=bool, required=False, default=True, description='Use this option to enable display of a webcam stream in the UI, e.g. via MJPG-Streamer. Webcam support will be disabled if not set.')}
Metadata about the fields defined on the model,
mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
+
+-
+renderAfterPrintDelay: int
+Delay to wait for after print end before rendering timelapse, in seconds. If another print gets started during this time, the rendering will be postponed.
+
+
-
snapshotWebcam: str
diff --git a/maintenance/searchindex.js b/maintenance/searchindex.js
index c3eeadb4..6bb96cd2 100644
--- a/maintenance/searchindex.js
+++ b/maintenance/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"@ Commands": [[50, "commands"]], "A YAML Primer": [[40, "a-yaml-primer"]], "API": [[23, "api"], [31, "api"], [37, "api"]], "Abridged file or folder information": [[2, "abridged-file-or-folder-information"]], "Absolute imports": [[96, "absolute-imports"]], "Access Control": [[37, "access-control"], [48, "access-control"]], "Access control": [[0, "access-control"], [2, "access-control"]], "Action Command Notification support": [[20, "action-command-notification-support"]], "Action Command Prompt support": [[21, "action-command-prompt-support"]], "Action Commands": [[49, "action-commands"]], "Add Slicing Profile": [[14, "add-slicing-profile"]], "Add a new group": [[0, "add-a-new-group"]], "Add a new printer profile": [[10, "add-a-new-printer-profile"]], "Add a new user": [[0, "add-a-new-user"]], "Add or update request": [[10, "add-or-update-request"]], "Address test result": [[17, "address-test-result"]], "Announced Services": [[25, "announced-services"]], "Announcement Plugin": [[22, "announcement-plugin"]], "Anonymous Usage Tracking Plugin": [[34, "anonymous-usage-tracking-plugin"]], "Appearance": [[37, "appearance"]], "Application Keys Plugin": [[23, "application-keys-plugin"]], "Arbitrary Command Request": [[9, "arbitrary-command-request"]], "AssetPlugin": [[95, "assetplugin"]], "Authorization": [[4, "authorization"]], "Authorization request": [[23, "authorization-request"]], "Authorization response": [[23, "authorization-response"]], "Autologin": [[48, "autologin"]], "Available Events": [[47, "available-events"]], "Available Extension Hooks": [[48, "available-extension-hooks"]], "Available plugin hooks": [[92, "available-plugin-hooks"]], "Available plugin mixins": [[95, "available-plugin-mixins"]], "Backup Plugin": [[24, "backup-plugin"]], "Basic Rules": [[40, "basic-rules"]], "BlueprintPlugin": [[95, "blueprintplugin"]], "Bundled Plugins": [[30, "bundled-plugins"]], "Bundled Scripts": [[52, "bundled-scripts"]], "Bytes vs unicode": [[96, "bytes-vs-unicode"]], "CLI": [[36, "cli"]], "CSRF Protection": [[4, "csrf-protection"]], "Callbacks": [[97, "callbacks"]], "Change a user\u2019s password": [[0, "change-a-user-s-password"]], "Change current timelapse config": [[16, "change-current-timelapse-config"]], "Changing log levels": [[39, "changing-log-levels"]], "Changing logging formatters": [[39, "changing-logging-formatters"]], "Changing logging handlers": [[39, "changing-logging-handlers"]], "Checklist": [[96, "checklist"]], "Client command definitions": [[15, "client-command-definitions"]], "Command definition": [[15, "command-definition"]], "Command line usage": [[24, "command-line-usage"], [33, "command-line-usage"]], "Common configuration patterns": [[33, "common-configuration-patterns"]], "Common data model": [[2, "common-data-model"]], "Common pitfalls during migration": [[96, "common-pitfalls-during-migration"]], "Communication Throttling": [[70, "communication-throttling"]], "Component list": [[7, "component-list"]], "Configuration": [[38, "configuration"], [47, "configuration"], [48, "configuration"]], "Configuring the Plugin": [[32, "configuring-the-plugin"], [33, "configuring-the-plugin"]], "Configuring the plugin": [[20, "configuring-the-plugin"], [21, "configuring-the-plugin"], [22, "configuring-the-plugin"], [24, "configuring-the-plugin"], [25, "configuring-the-plugin"], [26, "configuring-the-plugin"], [29, "configuring-the-plugin"], [34, "configuring-the-plugin"], [35, "configuring-the-plugin"]], "Connection handling": [[1, "connection-handling"]], "Containers": [[51, "containers"]], "Content Type": [[4, "content-type"]], "Contents": [[0, "contents"], [1, "contents"], [2, "contents"], [3, "contents"], [4, "contents"], [6, "contents"], [7, "contents"], [9, "contents"], [10, "contents"], [11, "contents"], [13, "contents"], [14, "contents"], [16, "contents"], [19, "contents"], [37, "contents"], [47, "contents"], [51, "contents"], [52, "contents"], [56, "contents"]], "Context": [[52, "context"]], "Control Properties": [[88, "control-properties"]], "Controls": [[37, "controls"], [51, "controls"]], "Cross-origin requests": [[4, "cross-origin-requests"]], "Current User": [[4, "current-user"]], "Current user": [[4, "sec-api-general-datamodel-currentuser"]], "Custom Controls": [[51, "custom-controls"]], "Custom Controls Response": [[9, "custom-controls-response"]], "Data model": [[0, "data-model"], [3, "data-model"], [4, "data-model"], [6, "data-model"], [7, "data-model"], [9, "data-model"], [10, "data-model"], [11, "data-model"], [13, "data-model"], [14, "data-model"], [15, "data-model"], [16, "data-model"], [17, "data-model"], [19, "data-model"], [23, "data-model"], [31, "data-model"]], "Debug commands": [[46, "debug-commands"]], "Decide on existing request": [[23, "decide-on-existing-request"]], "Decision request": [[23, "decision-request"]], "Delete Slicing Profile": [[14, "delete-slicing-profile"]], "Delete a group": [[0, "delete-a-group"]], "Delete a language pack": [[7, "delete-a-language-pack"]], "Delete a specific logfile": [[31, "delete-a-specific-logfile"]], "Delete a timelapse": [[16, "delete-a-timelapse"]], "Delete a user": [[0, "delete-a-user"]], "Delete a user\u2019s api key": [[0, "delete-a-user-s-api-key"]], "Delete an unrendered timelapse": [[16, "delete-an-unrendered-timelapse"]], "Delete file": [[3, "delete-file"]], "Dependencies": [[97, "dependencies"]], "Developing Plugins": [[54, "developing-plugins"], [93, "developing-plugins"]], "Development": [[43, "development"]], "Development settings": [[37, "development-settings"]], "Dictionaries": [[40, "dictionaries"]], "Differences of safe mode vs normal operation mode": [[55, "differences-of-safe-mode-vs-normal-operation-mode"]], "Discovery Plugin": [[25, "discovery-plugin"]], "Distributing your plugin": [[89, "distributing-your-plugin"]], "Enabling the virtual printer": [[46, "enabling-the-virtual-printer"]], "Encoding": [[4, "encoding"]], "Error Information": [[9, "error-information"]], "Error Tracking Plugin": [[26, "error-tracking-plugin"]], "Errors": [[44, "errors"]], "Estimation": [[37, "estimation"]], "EventHandlerPlugin": [[95, "eventhandlerplugin"]], "Events": [[24, "events"], [32, "events"], [33, "events"], [37, "events"], [47, "events"], [52, "events"]], "Example": [[25, "example"], [47, "example"]], "Example communication with the firmware": [[20, "example-communication-with-the-firmware"], [21, "example-communication-with-the-firmware"]], "Examples": [[40, "examples"], [51, "examples"], [52, "examples"]], "Execute a registered system command": [[15, "execute-a-registered-system-command"]], "Execution Order": [[92, "execution-order"], [95, "execution-order"]], "Feature": [[37, "feature"]], "Features": [[53, "features"]], "Fetch list of existing application keys": [[23, "fetch-list-of-existing-application-keys"]], "Fetch template data": [[13, "fetch-template-data"]], "File Check": [[27, "file-check"]], "File handling": [[47, "file-handling"]], "File information": [[2, "file-information"], [31, "file-information"]], "File operations": [[3, "file-operations"]], "File related": [[2, "file-related"]], "Files": [[2, "files"]], "Finding Plugins": [[54, "finding-plugins"]], "Finish wizards": [[19, "finish-wizards"]], "Firmware Check": [[28, "firmware-check"]], "First Steps": [[33, "first-steps"]], "Folder": [[37, "folder"]], "Folders": [[2, "folders"]], "Frontend fun: How to add functionality to OctoPrint\u2019s web interface": [[90, "frontend-fun-how-to-add-functionality-to-octoprint-s-web-interface"]], "Full State Response": [[9, "full-state-response"]], "Further ZeroConf Services": [[25, "further-zeroconf-services"]], "Further reading": [[96, "further-reading"]], "GCODE Analysis": [[37, "gcode-analysis"]], "GCODE Scripts": [[52, "gcode-scripts"]], "GCODE Viewer": [[37, "gcode-viewer"]], "GCODE analysis information": [[2, "gcode-analysis-information"]], "GCODE processing": [[47, "gcode-processing"]], "GCode Viewer Plugin": [[29, "gcode-viewer-plugin"]], "Gather configuration information": [[48, "gather-configuration-information"]], "General Concepts": [[87, "general-concepts"], [92, "general-concepts"], [95, "general-concepts"]], "General information": [[4, "general-information"]], "Get a user\u2019s settings": [[0, "get-a-user-s-settings"]], "Get connection settings": [[1, "get-connection-settings"]], "Get group list": [[0, "get-group-list"]], "Global credentials": [[33, "global-credentials"]], "Group list response": [[0, "group-list-response"]], "Group record": [[2, "group-record"]], "Group registration request": [[0, "group-registration-request"]], "Group update request": [[0, "group-update-request"]], "Groups": [[0, "groups"], [0, "sec-api-access-datamodel-groups"]], "Growing up: How to make it distributable": [[90, "growing-up-how-to-make-it-distributable"]], "Helpers": [[24, "helpers"], [33, "helpers"], [91, "helpers"]], "Historic Temperature Data Point": [[2, "historic-temperature-data-point"]], "Hooks": [[24, "hooks"], [32, "hooks"], [33, "hooks"], [92, "hooks"]], "How to get a Python 3 virtual environment with OctoPrint": [[96, "how-to-get-a-python-3-virtual-environment-with-octoprint"]], "How to start OctoPrint in safe mode": [[55, "how-to-start-octoprint-in-safe-mode"]], "IDE Setup": [[42, "sec-development-environment-ides"]], "If you are using a VPN and your setup ABSOLUTELY REQUIRES disabling internal OctoPrint access controls": [[48, "if-you-are-using-a-vpn-and-your-setup-absolutely-requires-disabling-internal-octoprint-access-controls"]], "Injected Properties": [[94, "injected-properties"], [95, "injected-properties"]], "Installing Plugins": [[54, "installing-plugins"]], "Integer division": [[96, "integer-division"]], "Interesting data types": [[40, "interesting-data-types"]], "Internal Modules": [[79, "internal-modules"]], "Issue a bed command": [[9, "issue-a-bed-command"]], "Issue a chamber command": [[9, "issue-a-chamber-command"]], "Issue a command for an unrendered timelapse": [[16, "issue-a-command-for-an-unrendered-timelapse"]], "Issue a connection command": [[1, "issue-a-connection-command"]], "Issue a file command": [[3, "issue-a-file-command"]], "Issue a job command": [[6, "issue-a-job-command"]], "Issue a print head command": [[9, "issue-a-print-head-command"]], "Issue a tool command": [[9, "issue-a-tool-command"]], "Issue an SD command": [[9, "issue-an-sd-command"]], "Issue an application key command": [[23, "issue-an-application-key-command"]], "Iterators instead of list from map, filter, zip": [[96, "iterators-instead-of-list-from-map-filter-zip"]], "JS Client Library": [[31, "js-client-library"]], "JavaScript Client Library": [[23, "javascript-client-library"], [62, "javascript-client-library"]], "Job information": [[2, "job-information"]], "Job information response": [[6, "job-information-response"]], "Job operations": [[6, "job-operations"]], "Job related": [[2, "job-related"]], "Key list entry": [[23, "key-list-entry"]], "Key response": [[23, "key-response"]], "Language pack metadata": [[7, "language-pack-metadata"]], "Languages": [[7, "languages"]], "Lifecycle": [[87, "lifecycle"]], "Lifecycle diagrams": [[97, "lifecycle-diagrams"]], "Linux": [[42, "linux"]], "List All Slicers and Slicing Profiles": [[14, "list-all-slicers-and-slicing-profiles"]], "List Slicing Profiles of a Specific Slicer": [[14, "list-slicing-profiles-of-a-specific-slicer"]], "List all permissions": [[0, "list-all-permissions"]], "List all registered system commands": [[15, "list-all-registered-system-commands"]], "List all registered system commands for a source": [[15, "list-all-registered-system-commands-for-a-source"]], "List all response": [[15, "list-all-response"]], "List response": [[7, "list-response"], [23, "list-response"]], "Lists": [[40, "lists"]], "Log file": [[46, "log-file"]], "Log file management": [[8, "log-file-management"]], "Logfile Retrieve Response": [[31, "logfile-retrieve-response"]], "Logging": [[31, "logging"]], "Login": [[4, "login"]], "Login response": [[4, "login-response"]], "Logout": [[4, "logout"]], "Mac OS X": [[42, "mac-os-x"]], "Manual Installation": [[54, "manual-installation"]], "Manual file distribution": [[89, "manual-file-distribution"]], "MfaPlugin": [[95, "mfaplugin"]], "Migrating to Python 3": [[96, "migrating-to-python-3"]], "Mixins": [[95, "mixins"]], "More frontend fun: Adding custom javascript to your frontend components": [[90, "more-frontend-fun-adding-custom-javascript-to-your-frontend-components"]], "More nifty pause and resume": [[52, "more-nifty-pause-and-resume"]], "Needs": [[2, "needs"]], "Obtaining, building and running the source": [[42, "obtaining-building-and-running-the-source"]], "OctoPi specific steps": [[48, "octopi-specific-steps"]], "OctoPrintClient": [[57, "octoprintclient"]], "OctoPrintClient.browser": [[58, "octoprintclient-browser"]], "OctoPrintClient.connection": [[59, "octoprintclient-connection"]], "OctoPrintClient.control": [[60, "octoprintclient-control"]], "OctoPrintClient.files": [[61, "octoprintclient-files"]], "OctoPrintClient.job": [[63, "octoprintclient-job"]], "OctoPrintClient.languages": [[64, "octoprintclient-languages"]], "OctoPrintClient.logs": [[65, "octoprintclient-logs"]], "OctoPrintClient.plugins.logging": [[31, "octoprintclient-plugins-logging"]], "OctoPrintClient.printer": [[66, "octoprintclient-printer"]], "OctoPrintClient.printerprofiles": [[67, "octoprintclient-printerprofiles"]], "OctoPrintClient.settings": [[68, "octoprintclient-settings"]], "OctoPrintClient.slicing": [[69, "octoprintclient-slicing"]], "OctoPrintClient.socket": [[70, "octoprintclient-socket"]], "OctoPrintClient.system": [[71, "octoprintclient-system"]], "OctoPrintClient.timelapse": [[72, "octoprintclient-timelapse"]], "OctoPrintClient.users": [[73, "octoprintclient-users"]], "OctoPrintClient.util": [[74, "octoprintclient-util"]], "OctoPrintClient.wizard": [[75, "octoprintclient-wizard"]], "OctoPrint\u2019s branching model": [[41, "octoprint-s-branching-model"]], "OctoPrint\u2019s versioning strategy": [[45, "octoprint-s-versioning-strategy"]], "Optional but recommended tools": [[42, "optional-but-recommended-tools"]], "Parameterized GCODE Script": [[51, "parameterized-gcode-script"]], "Path test result": [[17, "path-test-result"]], "Pending list entry": [[23, "pending-list-entry"]], "Permission list response": [[0, "permission-list-response"]], "Permission record": [[2, "permission-record"]], "Permissions": [[0, "permissions"], [0, "sec-api-access-datamodel-permissions"]], "Placeholders": [[47, "placeholders"]], "Plugin Manager": [[32, "plugin-manager"]], "Plugin Tutorial": [[90, "plugin-tutorial"]], "Plugin settings": [[37, "plugin-settings"]], "Plugins": [[54, "plugins"]], "Poll for decision on existing request": [[23, "poll-for-decision-on-existing-request"]], "Predefined Scripts": [[52, "predefined-scripts"]], "Preparation": [[48, "preparation"]], "Print History": [[2, "print-history"]], "Print Statistics": [[2, "print-statistics"]], "Printer Profile": [[47, "printer-profile"]], "Printer Profiles": [[37, "printer-profiles"]], "Printer State": [[2, "printer-state"]], "Printer communication": [[47, "printer-communication"]], "Printer operations": [[9, "printer-operations"]], "Printer profile operations": [[10, "printer-profile-operations"]], "Printer related": [[2, "printer-related"]], "Printing": [[47, "printing"]], "Probe for workflow support": [[23, "probe-for-workflow-support"]], "Profile": [[10, "profile"], [14, "profile"]], "Profile Update Request": [[14, "profile-update-request"]], "Profile list": [[10, "profile-list"], [14, "profile-list"]], "Profiling requests": [[44, "profiling-requests"]], "Progress information": [[2, "progress-information"]], "ProgressPlugin": [[95, "progressplugin"]], "Proper packages installable via pip": [[89, "proper-packages-installable-via-pip"]], "Push updates": [[11, "push-updates"]], "PyCharm": [[42, "pycharm"]], "REST API": [[5, "rest-api"]], "References": [[2, "references"], [31, "references"]], "Regenerate a user\u2019s api key": [[0, "regenerate-a-user-s-api-key"]], "Regenerate the system wide API key": [[13, "regenerate-the-system-wide-api-key"]], "Registering custom viewmodels": [[97, "registering-custom-viewmodels"]], "Registering with the official plugin repository": [[89, "registering-with-the-official-plugin-repository"]], "ReloadNeedingPlugin": [[95, "reloadneedingplugin"]], "Remove an existing printer profile": [[10, "remove-an-existing-printer-profile"]], "Rendered timelapse": [[16, "rendered-timelapse"]], "Resend stats": [[2, "resend-stats"]], "Resolution test result": [[17, "resolution-test-result"]], "RestartNeedingPlugin": [[95, "restartneedingplugin"]], "Retrieve Specific Profile": [[14, "retrieve-specific-profile"]], "Retrieve a group": [[0, "retrieve-a-group"]], "Retrieve a list of available log files": [[31, "retrieve-a-list-of-available-log-files"]], "Retrieve a list of timelapses and the current config": [[16, "retrieve-a-list-of-timelapses-and-the-current-config"]], "Retrieve a list of users": [[0, "retrieve-a-list-of-users"]], "Retrieve a single printer profile": [[10, "retrieve-a-single-printer-profile"]], "Retrieve a specific file\u2019s or folder\u2019s information": [[3, "retrieve-a-specific-file-s-or-folder-s-information"]], "Retrieve a user": [[0, "retrieve-a-user"]], "Retrieve additional data about registered wizards": [[19, "retrieve-additional-data-about-registered-wizards"]], "Retrieve all files": [[3, "retrieve-all-files"]], "Retrieve all printer profiles": [[10, "retrieve-all-printer-profiles"]], "Retrieve current settings": [[13, "retrieve-current-settings"]], "Retrieve custom controls": [[9, "retrieve-custom-controls"]], "Retrieve files from specific location": [[3, "retrieve-files-from-specific-location"]], "Retrieve information about the current job": [[6, "retrieve-information-about-the-current-job"]], "Retrieve information about the last error": [[9, "retrieve-information-about-the-last-error"]], "Retrieve installed language packs": [[7, "retrieve-installed-language-packs"]], "Retrieve response": [[3, "retrieve-response"]], "Retrieve the current SD state": [[9, "retrieve-the-current-sd-state"]], "Retrieve the current bed state": [[9, "retrieve-the-current-bed-state"]], "Retrieve the current chamber state": [[9, "retrieve-the-current-chamber-state"]], "Retrieve the current printer state": [[9, "retrieve-the-current-printer-state"]], "Retrieve the current tool state": [[9, "retrieve-the-current-tool-state"]], "SD State": [[9, "sd-state"]], "Safe mode": [[55, "safe-mode"]], "Sample to setup an authed socket": [[70, "sample-to-setup-an-authed-socket"]], "Save settings": [[13, "save-settings"]], "Saying hello: How to make the plugin actually do something": [[90, "saying-hello-how-to-make-the-plugin-actually-do-something"]], "Scalars": [[40, "scalars"]], "Scripts": [[37, "scripts"]], "Send an arbitrary command to the printer": [[9, "send-an-arbitrary-command-to-the-printer"]], "Serial": [[37, "serial"]], "Server": [[37, "server"], [47, "server"]], "Server information": [[12, "server-information"]], "Server test result": [[17, "server-test-result"]], "Setting up a Development environment": [[42, "setting-up-a-development-environment"]], "Setting up the virtual printer for debugging": [[46, "setting-up-the-virtual-printer-for-debugging"]], "Settings": [[13, "settings"], [47, "settings"]], "Settings Galore: How to make parts of your plugin user adjustable": [[90, "settings-galore-how-to-make-parts-of-your-plugin-user-adjustable"]], "SettingsPlugin": [[95, "settingsplugin"]], "ShutdownPlugin": [[95, "shutdownplugin"]], "SimpleApiPlugin": [[95, "simpleapiplugin"]], "Slicer": [[14, "slicer"]], "Slicer list": [[14, "slicer-list"]], "SlicerPlugin": [[95, "slicerplugin"]], "Slicing": [[14, "slicing"], [37, "slicing"], [47, "slicing"]], "Snippets": [[52, "snippets"]], "Software Update Plugin": [[33, "software-update-plugin"]], "Source Code": [[26, "source-code"], [29, "source-code"], [31, "source-code"], [32, "source-code"], [33, "source-code"], [34, "source-code"], [35, "source-code"]], "Source code": [[20, "source-code"], [21, "source-code"], [22, "source-code"], [23, "source-code"], [24, "source-code"], [25, "source-code"]], "Start authorization process": [[23, "start-authorization-process"]], "StartupPlugin": [[95, "startupplugin"]], "Style matters: Injecting custom CSS into the page": [[90, "style-matters-injecting-custom-css-into-the-page"]], "Supported action commands": [[20, "supported-action-commands"], [21, "supported-action-commands"]], "System": [[15, "system"], [37, "system"]], "Telling OctoPrint your plugin is Python 3 ready": [[96, "telling-octoprint-your-plugin-is-python-3-ready"]], "Temperature": [[37, "temperature"]], "Temperature Data": [[2, "temperature-data"]], "Temperature State": [[9, "temperature-state"]], "Temperature offset": [[2, "temperature-offset"]], "TemplatePlugin": [[95, "templateplugin"]], "Terminal Filters": [[37, "terminal-filters"]], "The easy way: Using the OctoPrint-AutoLoginConfig plugin": [[48, "the-easy-way-using-the-octoprint-autologinconfig-plugin"]], "The hard way: Manual editing of config.yaml": [[48, "the-hard-way-manual-editing-of-config-yaml"]], "Time triggered timelapse": [[16, "time-triggered-timelapse"]], "Timelapse": [[16, "timelapse"]], "Timelapse configuration": [[16, "timelapse-configuration"]], "Timelapse list": [[16, "timelapse-list"]], "Timelapses": [[47, "timelapses"]], "Todo": [[42, "id1"], [42, "id3"]], "Types": [[51, "types"]], "URL test result": [[17, "url-test-result"]], "UiPlugin": [[95, "uiplugin"]], "Unrendered timelapse": [[16, "unrendered-timelapse"]], "Update Slicing Profile": [[14, "update-slicing-profile"]], "Update a group": [[0, "update-a-group"]], "Update a user": [[0, "update-a-user"]], "Update a user\u2019s settings": [[0, "update-a-user-s-settings"]], "Update an existing printer profile": [[10, "update-an-existing-printer-profile"]], "Update methods": [[33, "update-methods"]], "Upload a language pack": [[7, "upload-a-language-pack"]], "Upload file or create folder": [[3, "upload-file-or-create-folder"]], "Upload response": [[3, "upload-response"]], "User list response": [[0, "user-list-response"]], "User record": [[2, "user-record"]], "User registration request": [[0, "user-registration-request"]], "User update request": [[0, "user-update-request"]], "Users": [[0, "users"], [0, "sec-api-access-datamodel-users"]], "Util": [[17, "util"]], "Various tests": [[17, "various-tests"]], "Version checks": [[33, "version-checks"]], "Version information": [[18, "version-information"]], "Version management after the official plugin repository release": [[89, "version-management-after-the-official-plugin-repository-release"]], "Version specific imports": [[96, "version-specific-imports"]], "Viewmodels": [[97, "viewmodels"]], "Virtual Printer": [[35, "virtual-printer"]], "Virtual printer configuration options": [[46, "virtual-printer-configuration-options"]], "Visual Studio Code (vscode)": [[42, "visual-studio-code-vscode"]], "Web interface reconnect": [[97, "web-interface-reconnect"]], "Web interface startup": [[97, "web-interface-startup"]], "Webcam": [[37, "webcam"]], "WebcamProviderPlugin": [[95, "webcamproviderplugin"]], "Welcome to OctoPrint\u2019s documentation!": [[56, "welcome-to-octoprint-s-documentation"]], "Where do we go from here?": [[90, "where-do-we-go-from-here"]], "Windows": [[42, "windows"]], "Wizard": [[19, "wizard"]], "Wizard data entry": [[19, "wizard-data-entry"]], "WizardPlugin": [[95, "wizardplugin"]], "Workflow": [[23, "workflow"]], "Workflow with redirect to auth dialog": [[23, "workflow-with-redirect-to-auth-dialog"]], "Z-change-triggered timelapse": [[16, "z-change-triggered-timelapse"]], "ZeroConf Service _http._tcp": [[25, "zeroconf-service-http-tcp"]], "ZeroConf Service _octoprint._tcp": [[25, "zeroconf-service-octoprint-tcp"]], "boolean": [[40, "boolean"]], "config.yaml": [[37, "config-yaml"]], "connected payload": [[11, "connected-payload"]], "create_backup": [[24, "create-backup"]], "current and history payload": [[11, "current-and-history-payload"]], "delete_backup": [[24, "delete-backup"]], "event payload": [[11, "event-payload"]], "exceptions": [[33, "exceptions"]], "float": [[40, "float"]], "int": [[40, "int"]], "logging.yaml": [[39, "logging-yaml"]], "octoprint.access.permissions": [[48, "octoprint-access-permissions"], [92, "octoprint-access-permissions"]], "octoprint.access.users": [[76, "module-octoprint.access.users"]], "octoprint.access.users.factory": [[92, "octoprint-access-users-factory"]], "octoprint.accesscontrol.keyvalidator": [[92, "octoprint-accesscontrol-keyvalidator"]], "octoprint.cli": [[77, "module-octoprint.cli"]], "octoprint.cli.commands": [[92, "octoprint-cli-commands"]], "octoprint.cli.dev": [[77, "module-octoprint.cli.dev"]], "octoprint.cli.plugins": [[77, "module-octoprint.cli.plugins"]], "octoprint.cli.server": [[77, "module-octoprint.cli.server"]], "octoprint.comm.protocol.action": [[92, "octoprint-comm-protocol-action"]], "octoprint.comm.protocol.atcommand.": [[92, "octoprint-comm-protocol-atcommand-phase"]], "octoprint.comm.protocol.firmware.capabilities": [[92, "octoprint-comm-protocol-firmware-capabilities"]], "octoprint.comm.protocol.firmware.capability_report": [[92, "octoprint-comm-protocol-firmware-capability-report"]], "octoprint.comm.protocol.firmware.info": [[92, "octoprint-comm-protocol-firmware-info"]], "octoprint.comm.protocol.gcode.": [[92, "octoprint-comm-protocol-gcode-phase"]], "octoprint.comm.protocol.gcode.error": [[92, "octoprint-comm-protocol-gcode-error"]], "octoprint.comm.protocol.gcode.received": [[92, "octoprint-comm-protocol-gcode-received"]], "octoprint.comm.protocol.scripts": [[92, "octoprint-comm-protocol-scripts"]], "octoprint.comm.protocol.temperatures.received": [[92, "octoprint-comm-protocol-temperatures-received"]], "octoprint.comm.transport.serial.additional_port_names": [[92, "octoprint-comm-transport-serial-additional-port-names"]], "octoprint.comm.transport.serial.factory": [[92, "octoprint-comm-transport-serial-factory"]], "octoprint.events.register_custom_events": [[92, "octoprint-events-register-custom-events"]], "octoprint.filemanager": [[78, "module-octoprint.filemanager"]], "octoprint.filemanager.analysis": [[78, "module-octoprint.filemanager.analysis"]], "octoprint.filemanager.analysis.factory": [[92, "octoprint-filemanager-analysis-factory"]], "octoprint.filemanager.destinations": [[78, "module-octoprint.filemanager.destinations"]], "octoprint.filemanager.extension_tree": [[92, "octoprint-filemanager-extension-tree"]], "octoprint.filemanager.preprocessor": [[92, "octoprint-filemanager-preprocessor"]], "octoprint.filemanager.storage": [[78, "module-octoprint.filemanager.storage"]], "octoprint.filemanager.util": [[78, "module-octoprint.filemanager.util"]], "octoprint.plugin": [[80, "module-octoprint.plugin"]], "octoprint.plugin.backup.additional_excludes": [[24, "octoprint-plugin-backup-additional-excludes"], [92, "octoprint-plugin-backup-additional-excludes"]], "octoprint.plugin.backup.after_backup": [[24, "octoprint-plugin-backup-after-backup"], [92, "octoprint-plugin-backup-after-backup"]], "octoprint.plugin.backup.after_restore": [[24, "octoprint-plugin-backup-after-restore"], [92, "octoprint-plugin-backup-after-restore"]], "octoprint.plugin.backup.before_backup": [[24, "octoprint-plugin-backup-before-backup"], [92, "octoprint-plugin-backup-before-backup"]], "octoprint.plugin.backup.before_restore": [[24, "octoprint-plugin-backup-before-restore"], [92, "octoprint-plugin-backup-before-restore"]], "octoprint.plugin.core": [[80, "module-octoprint.plugin.core"]], "octoprint.plugin.pluginmanager.reconnect_hooks": [[32, "octoprint-plugin-pluginmanager-reconnect-hooks"], [92, "octoprint-plugin-pluginmanager-reconnect-hooks"]], "octoprint.plugin.softwareupdate.check_config": [[33, "octoprint-plugin-softwareupdate-check-config"], [92, "octoprint-plugin-softwareupdate-check-config"]], "octoprint.plugin.types": [[80, "module-octoprint.plugin.types"]], "octoprint.printer": [[81, "module-octoprint.printer"]], "octoprint.printer.additional_state_data": [[92, "octoprint-printer-additional-state-data"]], "octoprint.printer.estimation.factory": [[92, "octoprint-printer-estimation-factory"]], "octoprint.printer.factory": [[92, "octoprint-printer-factory"]], "octoprint.printer.handle_connect": [[92, "octoprint-printer-handle-connect"]], "octoprint.printer.profile": [[81, "module-octoprint.printer.profile"]], "octoprint.printer.sdcardupload": [[92, "octoprint-printer-sdcardupload"]], "octoprint.schema": [[82, "module-octoprint.schema"]], "octoprint.schema.config": [[82, "module-octoprint.schema.config"]], "octoprint.schema.webcam": [[82, "module-octoprint.schema.webcam"]], "octoprint.server": [[83, "module-octoprint.server"]], "octoprint.server.api.after_request": [[92, "octoprint-server-api-after-request"]], "octoprint.server.api.before_request": [[92, "octoprint-server-api-before-request"]], "octoprint.server.http.access_validator": [[92, "octoprint-server-http-access-validator"]], "octoprint.server.http.bodysize": [[92, "octoprint-server-http-bodysize"]], "octoprint.server.http.routes": [[92, "octoprint-server-http-routes"]], "octoprint.server.sockjs.authed": [[92, "octoprint-server-sockjs-authed"]], "octoprint.server.sockjs.emit": [[92, "octoprint-server-sockjs-emit"]], "octoprint.server.sockjs.register": [[92, "octoprint-server-sockjs-register"]], "octoprint.server.util": [[83, "module-octoprint.server.util"]], "octoprint.server.util.flask": [[83, "module-octoprint.server.util.flask"]], "octoprint.server.util.sockjs": [[83, "module-octoprint.server.util.sockjs"]], "octoprint.server.util.tornado": [[83, "module-octoprint.server.util.tornado"]], "octoprint.settings": [[84, "module-octoprint.settings"]], "octoprint.slicing": [[85, "module-octoprint.slicing"]], "octoprint.slicing.exceptions": [[85, "module-octoprint.slicing.exceptions"]], "octoprint.system.additional_commands": [[92, "octoprint-system-additional-commands"]], "octoprint.systeminfo.additional_bundle_files": [[92, "octoprint-systeminfo-additional-bundle-files"]], "octoprint.theming.