52 KiB
JSON-RPC notifications
Persistent connections to Moonraker (websocket, unix socket) will
receive asynchronous via JSON-RPC notifications. A "notification"
in JSON-RPC is a method call without an id
parameter, for example:
{
"jsonrpc": "2.0",
"method": "{notification method name}"
}
OR with parameters:
{
"jsonrpc": "2.0",
"method": "{notification method name}",
"params": [true, "pos_param_2", {"obj": "stuff"}]
}
To keep consistency Moonraker always sends parameters as positional
arguments. Specifically, the params
field will always contain
an array. This can often lead to a somewhat strange format where
the params
field contains a single element array, where the element
is an object.
All of the notifications sent by Moonraker are outlined in this document.
Gcode Responses
Gcode Responses received from Klipper are broadcast to all persistent connections. All of Klippy's gcode responses are forwarded over the websocket.
notify_gcode_response
{
"jsonrpc": "2.0",
"method": "notify_gcode_response",
"params": ["response message"]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | string | The gcode response message. |
///
Subscription Updates
Klipper object subscription data received as a result of invoking the subscribe endpoint.
notify_status_update
{
"jsonrpc": "2.0",
"method": "notify_status_update",
"params": [
{
"gcode_move": {
"speed": 1500,
},
"toolhead": {
"status": "Ready"
}
},
578243.57824499
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An object containing changes to subscribed |
Klipper objects. Each key is the name of a | ||
printer object, each value will be an object | ||
containing fields that have changed since | ||
the last update. | ||
1 | float | A timestamp indicating the time the subscription |
data was sent. This time is relative to the | ||
monotonic clock used by Klipper. |
///
/// Tip See Klipper's status reference for details on printer objects and the fields they report. ///
Klippy Ready
Indicates that the Klippy Host has entered the ready
state.
notify_klippy_ready
{
"jsonrpc": "2.0",
"method": "notify_klippy_ready"
}
Klippy Shutdown
Indicates that the Klippy Host has entered the shutdown
state.
notify_klippy_shutdown
{
"jsonrpc": "2.0",
"method": "notify_klippy_shutdown"
}
Klippy Disconnected
Indicates that Moonraker's connection to Klippy has terminated.
notify_klippy_disconnected
{
"jsonrpc": "2.0",
"method": "notify_klippy_disconnected"
}
File List Changed
Moonraker's file_manager
will emit notifications when a change
to one of its watched root
directories is detected. This includes
changes to files and subdirectories within the root.
notify_filelist_changed
{
"jsonrpc": "2.0",
"method": "notify_filelist_changed",
"params": [
{
"item": {
"root": "gcodes",
"path": "subdir/my_file.gcode",
"modified": 1676940082.8595376,
"size": 384096,
"permissions": "rw"
},
"source_item": {
"path": "testdir/my_file.gcode",
"root": "gcodes"
},
"action": "move_file"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Changed Item Info object. |
Field | Type | Description |
---|---|---|
action |
string | The action |
that caused the notification. | ||
item |
object | The destination item affected by the change. |
#dest-item-info-spec | ||
source_item |
object | The source item affected by the change. Only |
present for move_file and move_dir actions. |
||
#source-item-info-spec | ||
{ #fileinfo-changed-spec } Changed Item Info |
Field | Type | Description |
---|---|---|
path |
string | The path of the destination item relative to |
the root directory. | ||
root |
string | The root node of the destination item. |
modified |
float | The last modified date in Unix Time (seconds). |
size |
int | The size of the destination item. |
permissions |
string | Permissions available on the changed item |
(if applicable). | ||
{ #dest-item-info-spec } Destination Item Info |
Field | Type | Description |
---|---|---|
path |
string | The path of the source item relative to |
the root directory. | ||
root |
string | The root node of the source item. |
{ #source-item-info-spec } Source Item Info |
Action | Description |
---|---|
create_file |
A file has been created within the watched root. |
create_dir |
A subdirectory has been created within the watched root. |
delete_file |
A file has been deleted within the watched root. |
delete_dir |
A subdirectory has been deleted within the watched root. |
move_file |
A file in a watched root has been moved. |
move_dir |
A subdirectory in a watched root has been moved. |
modify_file |
A file in a watched root has been modified. |
root_update |
A root folder's location on disk has changed. |
{ #filelist-changed-action-desc } Filelist Changed Action |
///
/// tip
Notifications are bundled where applicable. For example, when a
directory containing children is deleted a single delete_dir
notification is pushed. Likewise, when a directory is moved or copied,
a single move_dir
or create_dir
notification is pushed. Children
that are moved, copied, or deleted as a result of a parent's action will
not receive individual notifications.
///
Update Manager Response
While the update_manager
is in the process of updating one or more
registered software items, it will emit notifications containing information
about the current status of the update.
notify_update_response
{
"jsonrpc": "2.0",
"method": "notify_update_response",
"params": [
{
"application": "{app_name}",
"proc_id": 446461,
"message": "Update Response Message",
"complete": false
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An update manager notification status object. |
Field | Type | Description |
---|---|---|
application |
string | The name of the software currently updating. |
proc_id |
int | A unique ID associated with the current update. |
message |
message | A message containing status and/or information |
about the current update. | ||
complete |
bool | When set to true it indicates that the update |
has finished and this will be the last status | ||
response notification sent for this update. |
///
Update Manager Refreshed
After the update manager has performed a refresh of the registered software update state it will send a notification to all connections containing the complete current status.
notify_update_refreshed
/// collapse-code
{
"jsonrpc": "2.0",
"method": "notify_update_refreshed",
"params": [
{
"busy": false,
"github_rate_limit": 60,
"github_requests_remaining": 57,
"github_limit_reset_time": 1615836932,
"version_info": {
"system": {
"name": "system",
"configured_type": "system",
"package_count": 4,
"package_list": [
"libtiff5",
"raspberrypi-sys-mods",
"rpi-eeprom-images",
"rpi-eeprom"
]
},
"moonraker": {
"channel": "dev",
"debug_enabled": true,
"is_valid": true,
"configured_type": "git_repo",
"corrupt": false,
"info_tags": [],
"detected_type": "git_repo",
"name": "moonraker",
"remote_alias": "arksine",
"branch": "master",
"owner": "arksine",
"repo_name": "moonraker",
"version": "v0.7.1-364",
"remote_version": "v0.7.1-364",
"rollback_version": "v0.7.1-360",
"current_hash": "ecfad5cff15fff1d82cb9bdc64d6b548ed53dfaf",
"remote_hash": "ecfad5cff15fff1d82cb9bdc64d6b548ed53dfaf",
"is_dirty": false,
"detached": true,
"commits_behind": [],
"git_messages": [],
"full_version_string": "v0.7.1-364-gecfad5c",
"pristine": true,
"recovery_url": "https://github.com/Arksine/moonraker.git",
"remote_url": "https://github.com/Arksine/moonraker.git",
"warnings": [],
"anomalies": [
"Unofficial remote url: https://github.com/Arksine/moonraker-fork.git",
"Repo not on official remote/branch, expected: origin/master, detected: altremote/altbranch",
"Detached HEAD detected"
]
},
"mainsail": {
"name": "mainsail",
"owner": "mainsail-crew",
"version": "v2.1.1",
"remote_version": "v2.1.1",
"rollback_version": "v2.0.0",
"configured_type": "web",
"channel": "stable",
"info_tags": [
"desc=Mainsail Web Client",
"action=some_action"
],
"warnings": [],
"anomalies": [],
"is_valid": true
},
"fluidd": {
"name": "fluidd",
"owner": "fluidd-core",
"version": "v1.16.2",
"remote_version": "v1.16.2",
"rollback_version": "v1.15.0",
"configured_type": "web",
"channel": "beta",
"info_tags": [],
"warnings": [],
"anomalies": [],
"is_valid": true
},
"klipper": {
"channel": "dev",
"debug_enabled": true,
"is_valid": true,
"configured_type": "git_repo",
"corrupt": false,
"info_tags": [],
"detected_type": "git_repo",
"name": "klipper",
"remote_alias": "origin",
"branch": "master",
"owner": "Klipper3d",
"repo_name": "klipper",
"version": "v0.10.0-1",
"remote_version": "v0.10.0-41",
"rollback_version": "v0.9.1-340",
"current_hash": "4c8d24ae03eadf3fc5a28efb1209ce810251d02d",
"remote_hash": "e3cbe7ea3663a8cd10207a9aecc4e5458aeb1f1f",
"is_dirty": false,
"detached": false,
"commits_behind": [
{
"sha": "e3cbe7ea3663a8cd10207a9aecc4e5458aeb1f1f",
"author": "Kevin O'Connor",
"date": "1644534721",
"subject": "stm32: Clear SPE flag on a change to SPI CR1 register",
"message": "The stm32 specs indicate that the SPE bit must be cleared before\nchanging the CPHA or CPOL bits.\n\nReported by @cbc02009 and @bigtreetech.\n\nSigned-off-by: Kevin O'Connor <kevin@koconnor.net>",
"tag": null
},
{
"sha": "99d55185a21703611b862f6ce4b80bba70a9c4b5",
"author": "Kevin O'Connor",
"date": "1644532075",
"subject": "stm32: Wait for transmission to complete before returning from spi_transfer()",
"message": "It's possible for the SCLK pin to still be updating even after the\nlast byte of data has been read from the receive pin. (In particular\nin spi mode 0 and 1.) Exiting early from spi_transfer() in this case\ncould result in the CS pin being raised before the final updates to\nSCLK pin.\n\nAdd an additional wait at the end of spi_transfer() to avoid this\nissue.\n\nSigned-off-by: Kevin O'Connor <kevin@koconnor.net>",
"tag": null
}
],
"git_messages": [],
"full_version_string": "v0.10.0-1-g4c8d24ae-shallow",
"pristine": true,
"recovery_url": "https://github.com/Klipper3d/klipper.git",
"remote_url": "https://github.com/Klipper3d/klipper.git",
"warnings": [],
"anomalies": []
}
}
}
]
}
///
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Update Status Info |
object. |
///
CPU Throttled
If the system supports CPU monitoring via vcgencmd
Moonraker will emit
notifications when the CPU's throttled state changes.
notify_cpu_throttled
{
"jsonrpc": "2.0",
"method": "notify_cpu_throttled",
"params": [
{
"bits": 0,
"flags": []
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A CPU Throttled State object. |
Field | Type | Description |
---|---|---|
bits |
int | The current throttled state as an integer. A bitwise AND |
can be performed against this value to generate custom flag | ||
descriptions. | ||
flags |
[string] | A list of Throttled Flags describing the current state. |
#throttled-flags-desc | ||
{ #throttled-state-spec } Throttled State |
Flag | Bit Offset |
---|---|
Under-Voltage Detected | 1 << 0 |
Frequency Capped | 1 << 1 |
Currently Throttled | 1 << 2 |
Temperature Limit Active | 1 << 3 |
Previously Under-Volted | 1 << 16 |
Previously Frequency Capped | 1 << 17 |
Previously Throttled | 1 << 18 |
Previously Temperature Limited | 1 << 16 |
{ #throttled-flags-desc } Throttled Flags | |
/// |
/// note It is possible for clients to receive this notification multiple times if the system repeatedly transitions between an active and inactive throttled condition. ///
Moonraker Process Statistic Update
Moonraker performs live monitoring of host machine data and periodically emits a notification with the most recent statistics.
notify_proc_stat_update
/// collapse-code
{
"jsonrpc": "2.0",
"method": "notify_proc_stat_update",
"params": [
{
"moonraker_stats": {
"time": 1615837812.0894408,
"cpu_usage": 1.99,
"memory": 23636,
"mem_units": "kB"
},
"cpu_temp": 44.008,
"network": {
"lo": {
"rx_bytes": 114555457,
"tx_bytes": 114555457,
"bandwidth": 2911.49
},
"wlan0": {
"rx_bytes": 48773134,
"tx_bytes": 115035939,
"bandwidth": 3458.77
}
},
"system_cpu_usage": {
"cpu": 2.53,
"cpu0": 3.03,
"cpu1": 5.1,
"cpu2": 1.02,
"cpu3": 1
},
"websocket_connections": 2
}
]
}
///
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A proc stats response |
object. The throttled_state and system_uptime fields are |
||
omitted from the notification. |
///
History Changed
When Moonraker's [history]
component detects a new or completed
job a notification will be emitted.
notify_history_changed
/// collapse-code
{
"jsonrpc": "2.0",
"method": "notify_history_changed",
"params": [
{
"action": "added",
"job": {
"end_time": null,
"filament_used": 20.09796999999998,
"filename": "calicat_0.3mm_PLA_MK3S_33m.gcode",
"metadata": {
"size": 538254,
"modified": 1646770808,
"uuid": "4022d6bd-e5f5-45d7-84af-f38bcc57a5d3",
"file processors": [],
"slicer": "PrusaSlicer",
"slicer_version": "2.4.0+linux-x64-GTK3",
"gcode_start_byte": 51238,
"gcode_end_byte": 528796,
"object_height": 34.4,
"estimated_time": 1954,
"nozzle_diameter": 0.4,
"layer_height": 0.3,
"first_layer_height": 0.2,
"first_layer_extr_temp": 225,
"first_layer_bed_temp": 60,
"filament_name": "Fusion PLA Carbon Rod Black",
"filament_type": "PLA",
"filament_total": 1754.96,
"filament_weight_total": 5.23,
"thumbnails": [
{
"width": 32,
"height": 24,
"size": 1829,
"relative_path": ".thumbs/calicat_0.3mm_PLA_MK3S_33m-32x32.png"
},
{
"width": 400,
"height": 300,
"size": 36586,
"relative_path": ".thumbs/calicat_0.3mm_PLA_MK3S_33m-400x300.png"
}
]
},
"print_duration": 0.911540990229696,
"status": "in_progress",
"start_time": 1738671939.433274,
"total_duration": 0.911540990229696,
"auxiliary_data": [
{
"provider": "sensor hist_test",
"name": "power_consumption",
"value": 0,
"description": "Printer Power Consumption",
"units": "kWh"
},
{
"provider": "sensor hist_test",
"name": "max_current",
"value": 0,
"description": "Maximum current draw",
"units": "A"
},
{
"provider": "sensor hist_test",
"name": "min_current",
"value": 0,
"description": "Maximum current draw",
"units": "A"
},
{
"provider": "sensor hist_test",
"name": "avg_current",
"value": 0,
"description": "Maximum current draw",
"units": "A"
},
{
"provider": "sensor hist_test",
"name": "status",
"value": null,
"description": "Power Switch State",
"units": null
},
{
"provider": "sensor hist_test",
"name": "id",
"value": [],
"description": "Test ID",
"units": null
},
{
"provider": "sensor hist_test",
"name": "filament",
"value": 0,
"description": "filament tracker",
"units": "mm"
},
{
"provider": "spoolman",
"name": "spool_ids",
"value": [
1
],
"description": "Spool IDs used",
"units": null
}
],
"user": "testuser",
"exists": true,
"job_id": "000027"
}
}
]
}
///
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Job History Notification object. |
Field | Type | Description |
---|---|---|
action |
string | The action that triggered the notification. |
#job-hist-notify-action | ||
job |
string | A Job History Entry |
object. | ||
{ #job-hist-notify-spec } Job History Notification |
Action | Description |
---|---|
added |
A new job was added to the job history. |
finished |
A running job was completed. This includes |
jobs successfully completed, cancelled jobs, | |
and jobs that encountered an error. | |
{ #job-hist-notify-action } Job History Notify Action |
///
Authorized User Created
Moonraker's [authorization]
component will emit a notification when
a new user entry has been created.
notify_user_created
{
"jsonrpc": "2.0",
"method": "notify_user_created",
"params": [
{
"username": "Eric"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Auth Notification object. |
Field | Type | Description |
---|---|---|
username |
string | The username of the user entry associated with |
the notification. | ||
{ #auth-notification-spec } Auth Notification |
///
Authorized User Deleted
Moonraker's [authorization]
component will emit a notification when
an existing user entry has been deleted.
notify_user_deleted
{
"jsonrpc": "2.0",
"method": "notify_user_deleted",
"params": [
{
"username": "Eric"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Auth Notification object. |
///
Authorized User Logged Out
Moonraker's [authorization]
component will emit a notification when
a user has logged out.
notify_user_logged_out
{
"jsonrpc": "2.0",
"method": "notify_user_logged_out",
"params": [
{
"username": "Eric"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Auth Notification object. |
///
Service State Changed
If Moonraker's [machine]
component is configured with its systemd
integration enabled it will monitor the state of various systemd services.
When a change is detected in service state Moonraker will emit a
notification.
notify_service_state_changed
{
"jsonrpc": "2.0",
"method": "notify_service_state_changed",
"params": [
{
"klipper": {
"active_state": "inactive",
"sub_state": "dead"
}
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Service State Notification |
object. |
Field | Type | Description |
---|---|---|
service_name | object | A Unit Status object. The key |
for this field is the service name. | ||
#unit-status-spec | ||
{ #service-state-notify-spec } Service State Notification |
Field | Type | Description |
---|---|---|
active_state |
string | The new ACTIVE state reported by the provider for the service. |
sub_state |
string | The new SUB state reported by the provider for the service. |
{ #unit-status-spec } Unit Status |
///
Job Queue Changed
Moonraker's [job_queue]
component emits a notification when the job
queue state changes and when the queue is modified.
notify_job_queue_changed
{
"jsonrpc": "2.0",
"method": "notify_job_queue_changed",
"params": [
{
"action": "state_changed",
"updated_queue": null,
"queue_state": "paused"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Job Queue Notification |
object. |
Field | Type | Description |
---|---|---|
action |
string | The action that |
triggered the notification. | ||
queue_state |
string | The current queue |
state. | ||
updated_queue |
[object] | null | An array of Queued Job objects reflecting |
the updated queue. Will be null if the |
||
queue has not changed. | ||
#queued-job-spec | ||
{ #job-queue-notification-spec } |
Field | Type | Description |
---|---|---|
filename |
string | The name of the gcode file queued. |
job_id |
string | A unique ID assigned to the queued job. |
time_added |
float | The time (in Unix Time) the job was added to the queue. |
time_in_queue |
float | The cumulative amount of time, in seconds, the job has |
been pending in the queue. | ||
{ #queued-job-spec } Queued Job |
Action | Description |
---|---|
state_changed |
The internal job queue state has changed. |
jobs_added |
One or more jobs have been added to the queue. |
jobs_removed |
One or more jobs have been removed from the queue. |
job_loaded |
A job has been popped from the queue and successfully |
started. | |
{ #job-queue-notify-action } Job Queue Notification Action |
///
Button Event
Moonraker [button]
component supports optional notifications
sent when a button is pressed and/or released.
notify_button_event
{
"jsonrpc": "2.0",
"method": "notify_button_event",
"params": [
{
"name": "my_button",
"type": "gpio",
"event": {
"elapsed_time": 0.09323832602240145,
"received_time": 698614.214597004,
"render_time": 698614.214728513,
"pressed": false
},
"aux": null
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Button Notification object. |
Field | Type | Description |
---|---|---|
name |
string | The name of the button sending the event. |
type |
string | The configured type of the button. Currently |
only the gpio type is supported. |
||
event |
object | A Button Event object. |
#button-event-spec | ||
aux |
any | Auxiliary data attached to the event. Can be |
any JSON encodable type. If no aux data is | ||
sent with the event the value will be null |
||
{#button-notify-spec} Button Notification |
Field | Type | Description |
---|---|---|
elapsed_time |
float | The time elapsed (in seconds) since the |
last detected button event. | ||
received_time |
float | The time the event was detected relative |
to Moonraker's monotonic clock. | ||
render_time |
float | The time the button's template started |
rendering relative to Moonraker's monotonic | ||
clock. | ||
pressed |
bool | Set to true if the button is pressed. |
{ #button-event-spec } Button Event | ||
/// |
Announcement update event
Moonraker's [announcements]
component will emit a notification
when announcement entries are added or removed.
notify_announcement_update
/// collapse-code
{
"jsonrpc": "2.0",
"method": "notify_announcement_update",
"params": [
{
"entries": [
{
"entry_id": "arksine/moonlight/issue/3",
"url": "https://github.com/Arksine/moonlight/issues/3",
"title": "Test announcement 3",
"description": "Test Description [with a link](https://moonraker.readthedocs.io).",
"priority": "normal",
"date": 1647459219,
"dismissed": false,
"date_dismissed": null,
"dismiss_wake": null,
"source": "moonlight",
"feed": "moonlight"
},
{
"entry_id": "arksine/moonlight/issue/2",
"url": "https://github.com/Arksine/moonlight/issues/2",
"title": "Announcement Test Two",
"description": "This is a high priority announcement. This line is included in the description.",
"priority": "high",
"date": 1646855579,
"dismissed": false,
"date_dismissed": null,
"dismiss_wake": null,
"source": "moonlight",
"feed": "moonlight"
}
{
"entry_id": "arksine/moonraker/issue/349",
"url": "https://github.com/Arksine/moonraker/issues/349",
"title": "PolicyKit warnings; unable to manage services, restart system, or update packages",
"description": "This announcement is an effort to get ahead of a coming change that will certainly result in issues. PR #346 has been merged, and with it are some changes to Moonraker's default behavior.",
"priority": "normal",
"date": 1643392406,
"dismissed": false,
"source": "moonlight",
"feed": "Moonraker"
}
]
}
]
}
///
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Announcement Notification |
object. |
Field | Type | Description |
---|---|---|
entries |
[object] | An array of |
Announcement Entry | ||
objects. | ||
{ #announcement-notify-spec } Announcement Notification |
///
Announcement dismissed event
Moonraker's [announcements]
component will emit a notification
when an announcement is dismissed.
notify_announcement_dismissed
{
"jsonrpc": "2.0",
"method": "notify_announcement_dismissed",
"params": [
{
"entry_id": "arksine/moonlight/issue/3"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Announcement Dismissed Notification |
object. |
Field | Type | Description |
---|---|---|
entry_id |
string | The unique entry ID of the dismissed announcement. |
{ #announcement-dismissed-notify-desc} Announcement Dismissed Notification |
///
Announcement wake event
Moonraker's [announcements]
component will emit a notification
when an announcement "wakes" from a dismissed state.
notify_announcement_wake
{
"jsonrpc": "2.0",
"method": "notify_announcement_wake",
"params": [
{
"entry_id": "arksine/moonlight/issue/1"
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Announcement Wake Notification |
object. |
Field | Type | Description |
---|---|---|
entry_id |
string | The unique entry ID of the awoken announcement. |
The announcement's dismissed field will |
||
be set to false . |
||
{ #announcement-wake-notify-desc} Announcement Wake Notification |
///
Sudo alert event
At times Moonraker may require sudo permission to perform a specific task. This is rare and generally involves an upgrade (ie: Moonraker's systemd service file needs to be modified). When Moonraker runs a command that requires sudo permission an alert will be sent via notification.
Pending sudo requests that cannot be executed until the user sets their sudo password will also emit a notification.
notify_sudo_alert
{
"jsonrpc": "2.0",
"method": "notify_sudo_alert",
"params": [
{
"sudo_requested": true,
"sudo_messages": [
"Sudo password required to update Moonraker's systemd service."
]
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Sudo Alert Notification object |
Pos | Type | Description |
---|---|---|
sudo_requested |
bool | When true there are pending tasks that |
require super user permission. | ||
sudo_messages |
[string] | An array of messages describing the action |
or actions requiring sudo permission. | ||
{ #sudo-alert-notify-spec} Sudo Alert Notification |
//// note
Each sudo message
can fall into one of the following categories:
- An explanation of a pending sudo request.
- A response from a task that successfully ran with sudo permissions.
- A response from a task that returned an error. ////
///
Webcams changed event
Moonraker's [webcam]
component will send a notification when
a webcam is added, removed, or updated.
notify_webcams_changed
/// collapse-code
{
"jsonrpc": "2.0",
"method": "notify_webcams_changed",
"params": [
{
"webcams": [
{
"name": "tc2",
"location": "printer",
"service": "mjpegstreamer",
"enabled": true,
"icon": "mdiWebcam",
"target_fps": 15,
"target_fps_idle": 5,
"stream_url": "http://printer.lan/webcam?action=stream",
"snapshot_url": "http://printer.lan/webcam?action=snapshot",
"flip_horizontal": false,
"flip_vertical": false,
"rotation": 0,
"aspect_ratio": "4:3",
"extra_data": {},
"source": "database"
},
{
"name": "TestCam",
"location": "printer",
"service": "mjpegstreamer",
"enabled": true,
"icon": "mdiWebcam",
"target_fps": 15,
"target_fps_idle": 5,
"stream_url": "/webcam/?action=stream",
"snapshot_url": "/webcam/?action=snapshot",
"flip_horizontal": false,
"flip_vertical": false,
"rotation": 0,
"aspect_ratio": "4:3",
"extra_data": {},
"source": "database"
}
]
}
]
}
///
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Webcam Notification object. |
Field | Type | Description |
---|---|---|
webcams |
[object] | An array of Webcam Entry |
objects. | ||
{ #webcam-notify-spec } Webcam Notification |
///
Spoolman active spool ID changed
Moonraker's [spoolman]
component will emit a notification
when the current active spool ID has changed.
notify_active_spool_set
{
"jsonrpc": "2.0",
"method": "notify_active_spool_set",
"params": [
{
"spool_id": 1
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Active Spool Set Notification |
object. |
Field | Type | Description |
---|---|---|
spool_id |
int | null | The spool ID of the new active spool. A |
value of null indicates that no active |
||
spool is set and tracking is disabled. | ||
{ #spoolman-active-spool-notify-spec } Active Spool Set Notification |
///
Spoolman Status Changed
Moonraker's [spoolman]
component holds a persistent websocket
connection to the server. This allow Moonraker to remain aware
of the server's status. Moonraker will emit a notification when
the connection status to Spoolman changes.
notify_spoolman_status_changed
{
"jsonrpc": "2.0",
"method": "notify_spoolman_status_changed",
"params": [
{
"spoolman_connected": false
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Spoolman Status Notification |
object. |
Field | Type | Description |
---|---|---|
spoolman_connected |
bool | A value of true indicates that Moonraker is |
currently connected to the Spoolman Server. | ||
{ #spoolman-status-notify-spec } Spoolman Status Notification |
///
Agent Events
Moonraker has limited support for third party extensions through client connections that identify themselves as agents. Agents are granted access to additional endpoints that allow them to extend Moonraker's functionality. One such method allows agents to send events that are broadcast to all of Moonraker's connected clients. Moonraker proxies agent events through a notification.
notify_agent_event
{
"jsonrpc": "2.0",
"method": "notify_agent_event",
"params": [
{
"agent": "moonagent",
"event": "connected",
"data": {
"name": "moonagent",
"version": "0.0.1",
"type": "agent",
"url": "https://github.com/arksine/moontest"
}
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | An Agent Event Notification |
object. |
Field | Type | Description |
---|---|---|
agent |
string |
The name of the agent sending the event. |
event |
string |
The name of the event. Can be any name |
other than those reserved | ||
by Moonraker. | ||
data |
any | Additional data sent with the event. Can be any JSON |
encodable value. If the event does not attach data this | ||
field will be omitted. | ||
{ #agent-event-notify-spec } Agent Event Notification |
Event | Description |
---|---|
connected |
An agent has connected to Moonraker. The data |
field will contain an | |
Agent Info object. | |
disconnected |
An agent has disconnected from Moonraker. The data |
field is omitted for this event. | |
{ #reserved-agent-event-desc} Reserved Agent Events |
///
/// note The agent that sends an event will not receive a notification for that event. It will however receive events from other agents. ///
Sensor Events
Moonraker's [sensor]
component will take periodic measurements
of configured sensors. When one or more new measurement is received
a notification will be emitted containing the new measurement data.
notify_sensor_update
{
"jsonrpc": "2.0",
"method": "notify_sensor_update",
"params": [
{
"sensor1": {
"humidity": 28.9,
"temperature": 22.4
}
}
]
}
/// api-notification-spec open: True
Pos | Type | Description |
---|---|---|
0 | object | A Sensor Notification object. |
Field | Type | Description |
---|---|---|
sensor_name | object | The object may contain multiple sensors , where |
each key is the name of a sensor and the value | ||
is a Sensor Values object. |
||
#sensor-values-spec | ||
{ #sensor-notification-spec } Sensor Notification |
Field | Type | Description |
---|---|---|
value_name | any | The object may contain multiple values , where |
each key is the name of a parameter tracked | ||
by the sensor, and the value is the most | ||
recent reported measurement. | ||
{ #sensor-values-spec } Sensor Values |
///