Developing Plugins¶
- General Concepts
- Control Properties
- Mixins
- Hooks
- General Concepts
- Execution Order
- Available plugin hooks
- octoprint.access.permissions
- octoprint.access.users.factory
- octoprint.accesscontrol.keyvalidator
- octoprint.cli.commands
- octoprint.comm.protocol.firmware.info
- octoprint.comm.protocol.firmware.capabilities
- octoprint.comm.protocol.firmware.capability_report
- octoprint.comm.protocol.action
- octoprint.comm.protocol.atcommand.<phase>
- octoprint.comm.protocol.gcode.<phase>
- octoprint.comm.protocol.gcode.received
- octoprint.comm.protocol.gcode.error
- octoprint.comm.protocol.scripts
- octoprint.comm.protocol.temperatures.received
- octoprint.comm.transport.serial.additional_port_names
- octoprint.comm.transport.serial.factory
- octoprint.events.register_custom_events
- octoprint.filemanager.analysis.factory
- octoprint.filemanager.extension_tree
- octoprint.filemanager.preprocessor
- octoprint.plugin.backup.additional_excludes
- octoprint.plugin.backup.before_backup
- octoprint.plugin.backup.after_backup
- octoprint.plugin.backup.before_restore
- octoprint.plugin.backup.after_restore
- octoprint.plugin.pluginmanager.reconnect_hooks
- octoprint.plugin.softwareupdate.check_config
- octoprint.printer.additional_state_data
- octoprint.printer.factory
- octoprint.printer.handle_connect
- octoprint.printer.estimation.factory
- octoprint.printer.sdcardupload
- octoprint.server.api.after_request
- octoprint.server.api.before_request
- octoprint.server.http.access_validator
- octoprint.server.http.bodysize
- octoprint.server.http.routes
- octoprint.server.sockjs.authed
- octoprint.server.sockjs.register
- octoprint.server.sockjs.emit
- octoprint.system.additional_commands
- octoprint.systeminfo.additional_bundle_files
- octoprint.timelapse.extensions
- octoprint.ui.web.templatetypes
- octoprint.theming.<dialog>
- octoprint.timelapse.capture.pre
- octoprint.timelapse.capture.post
- Helpers
- Injected Properties
- Viewmodels
- Plugin Tutorial
- Saying hello: How to make the plugin actually do something
- Growing up: How to make it distributable
- Frontend fun: How to add functionality to OctoPrint’s web interface
- Settings Galore: How to make parts of your plugin user adjustable
- More frontend fun: Adding custom javascript to your frontend components
- Style matters: Injecting custom CSS into the page
- Where do we go from here?
- Distributing your plugin
- Migrating to Python 3
- Migrating to
pyproject.tomland build isolation - Migrating to OctoPrint 2.0.0
- Current deprecations & upcoming behaviour changes
- Upcoming changes for OctoPrint 2.1.0
- Upcoming changes for OctoPrint 2.2.0
- Upcoming changes for OctoPrint 3.0.0
- Removal of renamed
PluginSettings.(get|set)(Int|Float|Boolean) - Removal of renamed
octoprint.users.factoryhook - Removal of
adminparameter onOctoPrintClient.access.users.update - Removal of renamed printer storage related methods on
OctoPrintClient.printer - Removal of
AccessViewModel.isCurrentUserin favor ofAccessViewModel.isUserMyself - Removal of renamed printer storage related methods on
FilesViewModel - Removal of
localparameter from eventsTransferStarted,TransferDoneandTransferFailed
- Removal of renamed
- Deprecations that don’t yet have a removal version defined
- Removal of deprecated methods on
octoprint.printer.standard.Printer, also known asself._printer - Removal of deprecated methods on
octoprint.filemanager.FileManager, also known asself._filemanager - Removal of deprecated methods on
octoprint.filemanager.storage.StorageInterfaceand thus any storages - Removal of
octoprint.server.util.flask.get_remote_address octoprint.plugin.PluginInfo.blacklistedrenamed toblocklisted
- Removal of deprecated methods on