UniStream PLCs support the Redfish Update Service and Task Service, enabling firmware and UniLogic application updates through standard Redfish actions.
Updates are executed asynchronously. Each update request creates a Redfish task that allows clients to monitor progress and status.
For complete Redfish specification details, refer to the DMTF Redfish Specification:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0268_2025.3.pdf
|
Notes |
|
The Update Service supports three types of update workflows; application-only updates, firmware-only updates, and combined firmware and application updates. Each workflow follows a similar pattern but with specific differences in handling.
Actions:
SimpleUpdate - Used to update installed software components in a software image file located at an ImageURI parameter-specified URI.
StartUpdate / Activate - Used to update all images that have been previously invoked.
Update Types:
Application updates - Updates UniLogic application. File: UserApps_*.zip.encrypted
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
{
"ImageURI": "ftp://192.168.1.100/apps/UserApps_US5-B10-B1.zip.encrypted",
"Username": "ftpuser",
"Password": "ftppass",
"ForceUpdate": true
}
Note that to use an application password different from the PLCs application password, include the AppPassword parameter.
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
{
"ImageURI": "ftp://192.168.1.100/apps/UserApps_US5-B10-B1.zip.encrypted",
"Username": "ftpuser",
"Password": "ftppass",
"Oem": {
"Unitronics": {
"AppPassword": "myAppPassword123"
}
}
}
Firmware update - Updates PLC firmware. File: UniStream_Files_*.rar (Requires system reboot).
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
{
"ImageURI": "sftp://192.168.1.100/firmware/Unistream_Files_1.41.173.rar",
"Username": "sftpuser",
"Password": "sftppass",
"TransferProtocol": "SFTP",
"ForceUpdate": true
}
Combined update - Updates both firmware and application. File: UniStream_Files_*_*.zip (includes version and model). Executes in 2 phases: (1) Firmware update + reboot, (2) Application installation post-reboot.
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
{
"ImageURI": "ftp://192.168.1.100/updates/UniStream_Files_1.41.173_US5-B10-B1.zip",
"Username": "ftpuser",
"Password": "ftppass",
"Stage": true,
"Oem": {
"Unitronics": {
"AppPassword": "myAppPassword123"
}
}
}
Staged updates - Set Stage=true to download updates without immediate installation. Apply later with StartUpdate or Activate action.
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
{
"ImageURI": "ftp://server/update.zip",
"Stage": true
}
POST /redfish/v1/UpdateService/Actions/UpdateService.StartUpdate
This section describes the execution logic, validation rules, and system behavior for Redfish firmware update actions.
The behavior depends on the selected action and the current firmware state. Reboot requirements are explicitly indicated for each case.
SimpleUpdate action controls firmware extraction, staging, and activation based on the Stage and ForceUpdate parameters.|
Stage |
ForceUpdate |
Behavior |
Reboot Required |
|
true |
false |
Extracts and stages the firmware. Activation is deferred until |
No |
|
true |
true |
Staging takes precedence. |
No |
|
false |
true |
Extracts and activates the firmware immediately. |
Yes |
|
false |
false |
Invalid parameter combination. |
No |
|
not provided |
not provided |
Default |
Depends |
StartUpdate action activates all firmware that is currently staged on the system.|
Condition |
Behavior |
Reboot Required |
|
Staged firmware exists ( |
Activates all staged firmware |
Yes |
|
No staged firmware |
Returns warning “No staged updates found” |
No |
|
Firmware already active ( |
Returns warning “No staged updates found” |
No |
Activate action activates a specific firmware target identified in the request.|
Condition |
Behavior |
Reboot Required |
|
Target is staged ( |
Activates the specified target |
Yes |
|
Target not staged ( |
|
No |
|
Target not found |
|
No |
|
No targets provided |
|
No |
Use Set Service Property Ladder Element to modify service parameters at runtime, enabling dynamic configuration of service behavior from the PLC application.
Update Service
|
Parameter Name |
Purpose |
|
Service Enabled |
Is update service enabled or not |
|
Trigger Simple Update |
Set when client triggers SimpleUpdate action |
|
Trigger Start Update |
Set when client triggers StartUpdate/Activation action |
Task Service
|
Parameter Name |
Purpose |
|
Service Enabled |
Is task service enabled or not |
|
Completed Task Overwrite Policy |
Policy for completed tasks |
|
Task Auto Delete Timeout (Minutes) |
Timeout before auto-deleting completed tasks |
|
Life Cycle Event On Task State Change |
Sends lifecycle event on task state change |
Main UpdateService URI
GET /redfish/v1/UpdateService
Action URIs
POST /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate POST /redfish/v1/UpdateService/Actions/UpdateService.StartUpdate POST /redfish/v1/UpdateService/Actions/UpdateService.Activate
Inventory Collection URIs
GET /redfish/v1/UpdateService/FirmwareInventory GET /redfish/v1/UpdateService/SoftwareInventory
Active Inventory Items
GET /redfish/v1/UpdateService/SoftwareInventory/UnistreamFirmware GET /redfish/v1/UpdateService/SoftwareInventory/UniLogicApp
Staged Inventory Items
GET /redfish/v1/UpdateService/SoftwareInventory/StagedFirmware GET /redfish/v1/UpdateService/SoftwareInventory/StagedApplication GET /redfish/v1/UpdateService/SoftwareInventory/StagedCombined
Task Monitoring URIs
GET /redfish/v1/TaskService/Tasks/{TaskId} GET /redfish/v1/TaskService/Tasks/{TaskId}/Monitor
|
URI |
Method |
Description |
|
/redfish/v1/UpdateService |
GET, PATCH |
Main UpdateService Resource |
|
/redfish/v1/UpdateService/UpdateServiceCapabilities |
GET |
Service Capabilities |
|
/redfish/v1/UpdateService/FirmwareInventory |
GET |
Firmware Inventory Collection |
|
/redfish/v1/UpdateService/SoftwareInventory |
GET |
Software Inventory Collection |
|
/redfish/v1/UpdateService/SoftwareInventory/{InventoryId} |
GET |
Individual Inventory Item |
|
/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate |
POST |
Perform SimpleUpdate Action |
|
/redfish/v1/UpdateService/Actions/UpdateService.StartUpdate |
POST |
Perform StartUpdate Action |
|
/redfish/v1/UpdateService/Actions/UpdateService.Activate |
POST |
Perform Activate Action |
|
/redfish/v1/UpdateService/SimpleUpdateActionInfo |
GET |
SimpleUpdate Parameters |
|
/redfish/v1/UpdateService/StartUpdateActionInfo |
GET |
StartUpdate Parameters |
|
/redfish/v1/UpdateService/ActivateActionInfo |
GET |
Activate Parameters |