Skip to main content

update

The update command updates the SDVoE chipset firmware of a device.

Command TypeSDVoE
Minimum Version2.2.x

Usage

update <target> <firmwarepackage>

Arguments

ArgumentRequiredDescription
targetYesHostname or MAC address of the device to update.
firmwarepackageYesFilename of the firmware update package, as returned by firmware list.
Reboot required

While an update is in progress, no other operations can be performed on the device. Once the update completes, a reboot must be issued for the changes to take effect. The device is in an undefined state until that reboot.

Examples

Update a device's SDVoE firmware
update D_AppleTv_dn300 1.5.0.105-DN-300-R4.apz

Return value

For each device targeted, the result contains either an entry in the update array (the update was accepted) or a device error object in the error array:

update D_AppleTv_dn300 1.5.0.105-DN-300-R4.apz
{
"status": "SUCCESS",
"request_id": null,
"result": {
"update": [
{ "device_id": "6cdffb003882" }
],
"error": []
},
"error": null
}

Notifications

Three SDVoE event notifications are sent during the update:

EventMeaning
FIRMWARE_UPDATE_STARTThe update has started. No operations can be performed on the device until it completes
FIRMWARE_UPDATE_PROGRESSThe update is in progress
FIRMWARE_UPDATE_COMPLETEThe update has completed

Each event carries a request_id. Passing it to request returns the progress detail, which is how a client drives a progress bar:

request 12002, for a FIRMWARE_UPDATE_PROGRESS event
{
"status": "SUCCESS",
"request_id": 12002,
"result": {
"update_progress": [
{
"device_id": "6cdffb003882",
"device_name": "D AppleTv dn300",
"progress": 2235136,
"total": 2424832
}
]
},
"error": null
}

progress and total are in arbitrary units and are only meaningful as a ratio.

REST API

Endpoint typeSDVoE API command, forwarded to the Control Server
Address/api/device/{target}
RoleGoverned by the device lock rather than by a DisplayNet role
POST /api/device/{target}
{
"op": "update",
"file_name": "String"
}

Values labeled with a type name such as String or Integer are placeholders, not literal text. Replace them with actual values; fields marked (optional) can be omitted.

{target} takes a DisplayNet device name as readily as a device ID, and a locked device refuses a mutating operation. See SDVoE API operations for what DisplayNet adds to these calls.

See also

  • firmware: list packages, update the MCU or encoder
  • reboot: required after the update completes