Events
Configuration
Event hooks are configured via OctoPrint’s configuration file config.yaml
. There they are contained in a
subscriptions
list located directly under the events
node. The command
node accepts either a single string
or a list of strings so that multiple commands can be executed in one go. Each hook carries an additional node type that
must be either gcode
(for GCODE commands to be sent to the printer based on the event) or system
(for commands to be
executed on the system OctoPrint is running on).
All event hooks can be disabled completely by setting event > enabled
to false
. You can also disable individual
hooks by setting the (optional) node enabled
to false, see the example below.
Example
events:
enabled: True
subscriptions:
- event: Disconnected
command: python ~/growl.py -t mygrowlserver -d "Lost connection to printer" -a OctoPrint -i http://raspi/Octoprint_logo.png
type: system
enabled: false
name: Disconnected
- event: PrintStarted
command: python ~/growl.py -t mygrowlserver -d "Starting {file}" -a OctoPrint -i http://raspi/Octoprint_logo.png
type: system
name: Print Started
- event: PrintDone
command: python ~/growl.py -t mygrowlserver -d "Completed {file}" -a OctoPrint -i http://raspi/Octoprint_logo.png
type: system
name: Print Done
- event:
- PrintStarted
- PrintFailed
- PrintDone
- PrintCancelled
command: python ~/growl.py -t mygrowlserver -d "Event {__eventname} ({name})" -a OctoPrint -i http://raspi/Octoprint_logo.png
type: system
name: Multiple Events
- event: Connected
command:
- M115
- M117 printer connected!
- G28
type: gcode
name: Connected
Placeholders
You can use the following generic placeholders in your event hooks:
{__currentZ}
: the current Z position of the head if known, -1 if not available
{__eventname}
: the name of the event hook being triggered
{__filename}
: name of currently selected file, orNO FILE
if no file is selected
{__filepath}
: path in origin location of currently selected file, orNO FILE
if no file is selected
{__fileorigin}
: origin of currently selected file, orNO FILE
if no file is selected
{__progress}
: the progress of the print in percent, 0 if not available
{__data}
: a string representation of the payload
{__now}
: the date and time of the event in ISO 8601
Additionally, all data from the payload can be accessed by its key. Example: If the payload happens to be defined something like this:
name
: the file’s name
path
: the file’s path in its origin storage location
origin
: the origin storage location of the file, eitherlocal
orsdcard
then you’ll be able to access the file’s name via the placeholder {name}
, its path via the placeholder {path}
and its origin via the placeholder {origin}
.
Available Events
Note
Plugins may add additional events via the octoprint.events.register_custom_events hook.
Server
- Startup
The server has started.
- Shutdown
The server is shutting down.
- ClientOpened
A client has connected to the push socket.
Payload:
remoteAddress
: the remote address (IP) of the client that connected. On the push socket only available with a valid login session.
Note: Name changed in version 1.1.0
Changed in version 1.1.0.
Changed in version 1.4.0.
- ClientAuthed
A client has authenticated a user session on the push socket.
Payload:
remoteAddress
: the remote address (IP) of the client that authed. On the push socket only available with a valid login session.username
: the name of the user who authed. On the push socket only available with a valid login session.
Added in version 1.4.0.
- ClientClosed
A client has disconnected from the push socket.
Payload:
remoteAddress
: the remote address (IP) of the client that disconnected. On the push socket only available with a valid login session.
- UserLoggedIn
A user logged in. On the push socket only available with a valid login session with admin rights.
Payload:
username
: the name of the user who logged in
Added in version 1.4.0.
- UserLoggedOut
A user logged out. On the push socket only available with a valid login session with admin rights.
- Payload:
username
: the name of the user who logged out
Added in version 1.4.0.
- ConnectivityChanged
The server’s internet connectivity changed
Payload:
old
: Old connectivity value (true for online, false for offline)new
: New connectivity value (true for online, false for offline)
Added in version 1.3.5.
Printer communication
- Connecting
The server is attempting to connect to the printer.
Added in version 1.3.0.
- Connected
The server has connected to the printer.
Payload:
port
: the connected serial portbaudrate
: the baud rate
- Disconnecting
The server is going to disconnect from the printer. Note that this event might not always be sent when the server and printer get disconnected from each other. Do not depend on this for critical life cycle management.
Added in version 1.3.0.
- Disconnected
The server has disconnected from the printer
- Error
An unrecoverable error has been encountered, either as reported by the firmware (e.g. a thermal runaway) or on the connection.
Note that this event will not fire for error messages from the firmware that are handled (and as such recovered from) either by OctoPrint or a plugin.
Payload:
error
: the error stringreason
: the reason for the error, one offirmware
,resend
,resend_loop
,timeout
,connection
,start_print
,autodetect
or unset.consequence
: What was done as a consequence of that error.emergency
if anM112
emergency stop was sent and the connection to the printer closed,disconnect
if the connection was just closed,cancel
if the ongoing print job was cancelled. Might also be missing if nothing happened as a consequence.
In case of errors with reason
firmware
, the following additional fields might be present in the payload:faq
: a link to the FAQ entry for the errorlogs
: the last lines from the communication log
- PrinterStateChanged
The state of the printer changed.
Payload:
state_id
: Id of the new state. Seeget_state_id()
for possible values.state_string
: Text representation of the new state.
Added in version 1.3.0.
File handling
- Upload
A file has been uploaded through the REST API.
- Payload:
name
: the file’s namepath
: the file’s path within its storage locationtarget
: the target storage location to which the file was uploaded, eitherlocal
orsdcard
select
: whether an immediate selection of the file was requested on the API by the corresponding parameterprint
: whether an immediate print start of the file was requested on the API by the corresponding parametereffective_select
: whether the file will actually be selected (select
request got granted)effective_print
: whether the file will actually start printing (print
request got granted)userdata
: optionaluserdata
if provided on the API, will only be present if supplied in the upload request
Deprecated since version 1.3.0:
file
: the file’s path within its storage location. To be removed in 1.4.0.
Changed in version 1.4.0.
- FileAdded
A file has been added to a storage.
- Payload:
storage
: the storage’s identifierpath
: the file’s path within its storage locationname
: the file’s nametype
: the file’s type, a list of the path within the type hierarchy, e.g.["machinecode", "gcode"]
or["model", "stl"]
operation
: the operation that triggered the event, eitheradd
,copy
ormove
.
Note
A copied file triggers this for its new path. A moved file first triggers
FileRemoved
for its original path and thenFileAdded
for the new one.Added in version 1.3.3.
- FileRemoved
A file has been removed from a storage.
- Payload:
storage
: the storage’s identifierpath
: the file’s path within its storage locationname
: the file’s nametype
: the file’s type, a list of the path within the type hierarchy, e.g.["machinecode", "gcode"]
or["model", "stl"]
operation
: the operation that triggered the event, eitherremove
ormove
Note
A moved file first triggers
FileRemoved
for its original path and thenFileAdded
for the new one.Added in version 1.3.3.
- FileMoved
A file has been moved from one location to an other location.
- Payload:
storage
: the storage’s identifiersource_path
: the source file’s path within its storage locationsource_name
: the source file’s namesource_type
: the source file’s type, a list of the path within the type hierarchy, e.g.["machinecode", "gcode"]
or["model", "stl"]
destination_path
: the source file’s path within its storage locationdestination_name
: the source file’s namedestination_type
: the source file’s type, a list of the path within the type hierarchy, e.g.["machinecode", "gcode"]
or["model", "stl"]
Note
A moved file still triggers first a
FileRemoved
for its original path and thenFileAdded
event for the new one. After that a`UpdatedFiles`
event is also fired.Added in version 1.8.0.
- FolderAdded
A folder has been added to a storage.
- Payload:
storage
: the storage’s identifierpath
: the folder’s path within its storage locationname
: the folder’s name
Note
A copied folder triggers this for its new path. A moved folder first triggers
FolderRemoved
for its original path and thenFolderAdded
for the new one.Added in version 1.3.3.
- FolderRemoved
A folder has been removed from a storage.
- Payload:
storage
: the storage’s identifierpath
: the folder’s path within its storage locationname
: the folder’s name
Note
A moved folder first triggers
FolderRemoved
for its original path and thenFolderAdded
for the new one.Added in version 1.3.3.
- FolderMoved
A folder has been moved from one location to an other location.
- Payload:
storage
: the storage’s identifiersource_path
: the source folder’s path within its storage locationsource_name
: the source folder’s namedestination_path
: the source folder’s path within its storage locationdestination_name
: the source folder’s name
Note
A moved folder still triggers first a
FolderRemoved
for its original path and thenFolderAdded
event for the new one. After that a`UpdatedFiles`
event is also fired.Added in version 1.8.0.
- UpdatedFiles
A file list was modified.
Payload:
type
: the type of file list that was modified. Onlyprintables
is supported here. See the deprecation note below.Deprecated since version 1.2.0: The
gcode
modification type has been superseded byprintables
. It is currently still available for reasons of backwards compatibility and will also be sent on modification ofprintables
. It will however be removed with 1.4.0.
Changed in version 1.4.0.
- MetadataAnalysisStarted
The metadata analysis of a file has started.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the file’s origin storage location
Deprecated since version 1.3.0:
file
: the file’s path within its storage location. To be removed in 1.4.0.
Changed in version 1.4.0.
- MetadataAnalysisFinished
The metadata analysis of a file has finished.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the file’s origin storage locationresult
: the analysis result – this is a Python object currently only available for internal use
Deprecated since version 1.3.0:
file
: the file’s path within its storage location. To be removed in 1.4.0.
Changed in version 1.4.0.
- FileSelected
A file has been selected for printing.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- FileDeselected
No file is selected any more for printing.
- TransferStarted
A file transfer to the printer’s SD has started.
Payload:
local
: the file’s name as stored locallyremote
: the file’s name as stored on SD
Note: Name changed in version 1.1.0
Changed in version 1.1.0.
- TransferDone
A file transfer to the printer’s SD has finished.
Payload:
time
: the time it took for the transfer to complete in secondslocal
: the file’s name as stored locallyremote
: the file’s name as stored on SD
Printing
- PrintStarted
A print has started.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)user
: the user who started the print job (if available)
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- PrintFailed
A print failed.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)time
: the elapsed time of the print when it failed, in seconds (float)reason
: the reason the print failed, eithercancelled
orerror
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- PrintDone
A print completed successfully.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)time
: the time needed for the print, in seconds (float)
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- PrintCancelling
The print is about to be cancelled.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)user
: the user who cancelled the print job (if available)firmwareError
: the firmware error that caused cancelling the print job, if any
Added in version 1.3.7.
- PrintCancelled
The print has been cancelled.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)time
: the elapsed time of the print when it was cancelled, in seconds (float)user
: the user who cancelled the print job (if available)position
: the print head position at the time of cancelling (if available, not available if recording of the position on cancel is disabled)position.x
: x coordinate, as reported back from the firmware through M114position.y
: y coordinate, as reported back from the firmware through M114position.z
: z coordinate, as reported back from the firmware through M114position.e
: e coordinate (of currently selected extruder), as reported back from the firmware through M114position.t
: last tool selected through OctoPrint (note that if you did change the printer’s selected tool outside of OctoPrint, e.g. through the printer controller, or if you are printing from SD, this will NOT be accurate)position.f
: last feedrate for move commands sent through OctoPrint (note that if you modified the feedrate outside of OctoPrint, e.g. through the printer controller, or if you are printing from SD, this will NOT be accurate)fileposition
: position in the file in bytes at the time of cancellationprogress
: print progress as a percentage at the time of cancellation
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- PrintPaused
The print has been paused.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)user
: the user who paused the print job (if available)position
: the print head position at the time of pausing (if available, not available if the recording of the position on pause is disabled or the pause is completely handled by the printer’s firmware)position.x
: x coordinate, as reported back from the firmware through M114position.y
: y coordinate, as reported back from the firmware through M114position.z
: z coordinate, as reported back from the firmware through M114position.e
: e coordinate (of currently selected extruder), as reported back from the firmware through M114position.t
: last tool selected through OctoPrint (note that if you did change the printer’s selected tool outside of OctoPrint, e.g. through the printer controller, or if you are printing from SD, this will NOT be accurate)position.f
: last feedrate for move commands sent through OctoPrint (note that if you modified the feedrate outside of OctoPrint, e.g. through the printer controller, or if you are printing from SD, this will NOT be accurate)fileposition
: position in the file in bytes at the time of pausingprogress
: print progress as a percentage at the time of pausing
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- PrintResumed
The print has been resumed.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)user
: the user who resumed the print job (if available)
Deprecated since version 1.3.0:
file
: the file’s full path on disk (local
) or within its storage (sdcard
). To be removed in 1.4.0.filename
: the file’s name. To be removed in 1.4.0.
Changed in version 1.4.0.
- GcodeScript${ScriptName}Running
A custom GCODE script has started running.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)time
: the time needed for the print, in seconds (float)
Added in version 1.6.0.
- GcodeScript${ScriptName}Finished
A custom GCODE script has finished running.
Payload:
name
: the file’s namepath
: the file’s path within its storage locationorigin
: the origin storage location of the file, eitherlocal
orsdcard
size
: the file’s size in bytes (if available)owner
: the user who started the print job (if available)time
: the time needed for the print, in seconds (float)
Added in version 1.6.0.
- ChartMarked
A time-based marking has been made on the UI’s temperature chart.
Payload:
type
: The marking’s ID. Built-in types areprint
,done
,cancel
,pause
, andresume
. Plugins may set arbitrary types, which should be prefixed, e.g.pluginname_eventtype
. In the UI, the type ID is used to stylize the marking label.label
: The human-readable short label of the marking, ideally one short word. Optional but recommended; if not specified, the UI will display thetype
. The label may be localized in the UI.time
: The epoch time of marking. Defaults to the event fire time if not specified. Plugins may set a time in the past if it makes sense for the event.
Added in version 1.9.0.
GCODE processing
- PowerOn
An
M80
was sent to the printer through OctoPrint (not triggered when printing from SD!)- PowerOff
An
M81
was sent to the printer through OctoPrint (not triggered when printing from SD!)- Home
A
G28
was sent to the printer through OctoPrint (not triggered when printing from SD!)- ZChange
The printer’s Z-Height has changed (new layer) through a
G0
orG1
that was sent to the printer through OctoPrint (not triggered when printing from SD!)- Dwell
A
G4
was sent to the printer through OctoPrint (not triggered when printing from SD!)- Waiting
One of the following commands was sent to the printer through OctoPrint (not triggered when printing from SD!):
M0
,M1
,M226
- Cooling
An
M245
was sent to the printer through OctoPrint (not triggered when printing from SD!)- Alert
An
M300
was sent to the printer through OctoPrint (not triggered when printing from SD!)- Conveyor
An
M240
was sent to the printer through OctoPrint (not triggered when printing from SD!)- Eject
An
M40
was sent to the printer through OctoPrint (not triggered when printing from SD!)- EStop
An
M112
was sent to the printer through OctoPrint (not triggered when printing from SD!)- FilamentChange
An
M600
,M701
orM702
was sent to the printer through OctoPrint (not triggered when printing from SD!)Added in version 1.7.0.
- PositionUpdate
The response to an
M114
was received by OctoPrint. The payload contains the current position information parsed from the response and (in the case of the selected toolt
and the current feedratef
) tracked by OctoPrint.Payload:
x
: x coordinate, parsed from responsey
: y coordinate, parsed from responsez
: z coordinate, parsed from responsee
: e coordinate, parsed from responset
: last tool selected through OctoPrintf
: last feedrate for move commandsG0
,G1
orG28
sent through OctoPrint
Added in version 1.3.0.
- ToolChange
A tool change command was sent to the printer. The payload contains the former current tool index and the new current tool index.
Payload:
old
: old tool indexnew
: new tool index
Added in version 1.3.5.
- CommandSuppressed
A command was suppressed by OctoPrint due to according configuration and will not be sent to the printer.
Payload:
command
: the command that was suppressedmessage
: a message containing an explanation of the command suppressionseverity
: a severity level, eitherwarn
orinfo
-warn
indicates that the command was suppressed probably due to a misconfiguration either inside OctoPrint or the firmware and that it should be investigated by the user
Added in version 1.5.0.
- InvalidToolReported
The firmware reported a tool as invalid upon trying to select it. It has thus been marked as invalid and further attempts to select said tool will result in the tool command to get suppressed (and
SuppressedCommand
to be generated).Payload:
tool
: the tool number that was reported as invalid by the firmwarefallback
: the tool number that OctoPrint will revert to
Added in version 1.5.0.
Timelapses
- CaptureStart
A timelapse frame has started to be captured.
Payload:
file
: the name of the image file to be saved
- CaptureDone
A timelapse frame has completed being captured.
- Payload:
file
: the name of the image file that was saved
- CaptureFailed
A timelapse frame could not be captured.
- Payload:
file
: the name of the image file that should have been savederror
: the error that was caught
Added in version 1.3.0.
- MovieRendering
The timelapse movie has started rendering.
Payload:
gcode
: the GCODE file for which the timelapse would have been created (only the filename without the path)movie
: the movie file that is being created (full path)movie_basename
: the movie file that is being created (only the file name without the path)
- MovieDone
The timelapse movie is completed.
Payload:
gcode
: the GCODE file for which the timelapse would have been created (only the filename without the path)movie
: the movie file that has been created (full path)movie_basename
: the movie file that has been created (only the file name without the path)
- MovieFailed
There was an error while rendering the timelapse movie.
Payload:
gcode
: the GCODE file for which the timelapse would have been created (only the filename without the path)movie
: the movie file that would have been created (full path)movie_basename
: the movie file that would have been created (only the file name without the path)returncode
: the return code offfmpeg
that indicates the error that occurredreason
: additional machine processable reason string - can bereturncode
if ffmpeg returned a non-0 return code,no_frames
if no frames were captured that could be rendered to a timelapse, orunknown
for any other reason of failure to render.
Slicing
- SlicingStarted
The slicing of a file has started.
Payload:
slicer
: the used slicerstl
: the STL’s filenamestl_location
: the STL’s locationgcode
: the sliced GCODE’s filenamegcode_location
: the sliced GCODE’s locationprogressAvailable
: true if progress information via theslicingProgress
push update will be available, false if not
- SlicingDone
The slicing of a file has completed.
Payload:
slicer
: the used slicerstl
: the STL’s filenamestl_location
: the STL’s locationgcode
: the sliced GCODE’s filenamegcode_location
: the sliced GCODE’s locationtime
: the time needed for slicing, in seconds (float)
- SlicingCancelled
The slicing of a file has been cancelled. This will happen if a second slicing job targeting the same GCODE file has been started by the user.
Payload:
slicer
: the used slicerstl
: the STL’s filenamestl_location
: the STL’s locationgcode
: the sliced GCODE’s filenamegcode_location
: the sliced GCODE’s location
- SlicingFailed
The slicing of a file has failed.
Payload:
slicer
: the used slicerstl
: the STL’s filenamestl_location
: the STL’s locationgcode
: the sliced GCODE’s filenamegcode_location
: the sliced GCODE’s locationreason
: the reason for the slicing having failed
- SlicingProfileAdded
A new slicing profile was added.
Payload:
slicer
: the slicer for which the profile was addedprofile
: the profile that was added
Added in version 1.2.12.
- SlicingProfileModified
A slicing profile was modified.
Payload:
slicer
: the slicer for which the profile was modifiedprofile
: the profile that was modified
Added in version 1.2.12.
- SlicingProfileDeleted
A slicing profile was deleted.
Payload:
slicer
: the slicer for which the profile was deletedprofile
: the profile that was deleted
Added in version 1.2.12.
Settings
- SettingsUpdated
The settings were updated via the REST API.
This event may also be triggered if calling code of
octoprint.settings.Settings.save
oroctoprint.plugin.PluginSettings.save
sets thetrigger_event
parameter toTrue
.Added in version 1.2.0.
Printer Profile
- PrinterProfileModified
A printer profile was modified.
Payload:
identifier
: the identifier of the modified printer profile
Added in version 1.3.12.