A org.rdk.RemoteControl plugin for Thunder framework.
The RemoteControl plugin provides the ability to pair and IR-program remote controls.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].
The table below lists configuration options of the plugin.
| Name | Type | Description |
|---|---|---|
| callsign | string | Plugin instance name (default: org.rdk.RemoteControl) |
| classname | string | Class name: org.rdk.RemoteControl |
| locator | string | Library name: libWPEFrameworkRemoteControl.so |
| autostart | boolean | Determines if the plugin shall be started automatically along with the framework |
The following methods are provided by the org.rdk.RemoteControl plugin:
RemoteControl interface methods:
| Method | Description |
|---|---|
| getApiVersionNumber | Gets the current API version number |
| getNetStatus | Returns the status information provided by the last onStatus event for the specified network |
| startPairing | Initiates pairing a remote with the STB on the specified network |
| stopPairing | Cancels pairing a remote with the STB on the specified network |
| initializeIRDB | Initializes the IR database |
| clearIRCodes | Clears the IR codes from the specified remote |
| setIRCode | Programs an IR code into the specified remote control |
| getIRCodesByAutoLookup | Returns a list of available IR codes for the TV and AVRs specified by the input parameters |
| getIRCodesByNames | Returns a list of IR codes for the AV device specified by the input parameters |
| getIRDBManufacturers | Returns a list of manufacturer names based on the specified input parameters |
| getIRDBModels | Returns a list of model names based on the specified input parameters |
| getLastKeypressSource | Returns last key press source data |
| configureWakeupKeys | Configures which keys on the remote will wake the target from deepsleep |
| findMyRemote | Tells the most recently used remote to beep |
| factoryReset | Tells all paired and connected remotes to factory reset |
| unpair | Unpairs a given or all remote(s) from the STB |
| startFirmwareUpdate | Starts a firmware image update session for the specified remote(s) |
| statusFirmwareUpdate | Returns the status of an active firmware image update session |
| cancelFirmwareUpdate | Cancels an active firmware image update session |
Gets the current API version number.
No Events
This method takes no parameters.
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.version | integer | The API version number |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getApiVersionNumber"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"version": 1,
"success": true
}
}Returns the status information provided by the last onStatus event for the specified network.
No Events
| Name | Type | Description |
|---|---|---|
| params | object |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.status | object | |
| result.status.netType | integer | The type of network |
| result.status.netTypeSupported | array | a list of the network types that the STB supports, Note that some devices may only support one network type |
| result.status.netTypeSupported[#] | integer | |
| result.status.pairingState | string | The current overall pairing state of the specified network (must be one of the following: INITIALISING, IDLE, SEARCHING, PAIRING, COMPLETE, FAILED) |
| result.status.irProgState | string | The current state of the IR code programming request to the remote (must be one of the following: IDLE, WAITING, COMPLETE, FAILED) |
| result.status.remoteData | array | Remote information for each paired remote control. This array may be empty, if there are no paired remotes on the specified network |
| result.status.remoteData[#] | object | |
| result.status.remoteData[#].macAddress | string | The MAC address of the remote in hex-colon format |
| result.status.remoteData[#].connected | boolean | true if the remote is connected, otherwise false |
| result.status.remoteData[#]?.name | string | (optional) The remote name |
| result.status.remoteData[#].remoteId | integer | This integer is the remote ID number, assigned by the network |
| result.status.remoteData[#]?.deviceId | integer | (optional) The device ID number that is assigned by the network |
| result.status.remoteData[#]?.make | string | (optional) The manufacturer name of the remote |
| result.status.remoteData[#]?.model | string | (optional) The remote model name |
| result.status.remoteData[#]?.hwVersion | string | (optional) The remote hardware revision |
| result.status.remoteData[#]?.swVersion | string | (optional) The remote software revision |
| result.status.remoteData[#]?.btlVersion | string | (optional) The remote bootloader revision |
| result.status.remoteData[#]?.serialNumber | string | (optional) The remote serial number |
| result.status.remoteData[#]?.batteryPercent | integer | (optional) The current remote battery level as a percentage (0 to 100) |
| result.status.remoteData[#]?.tvIRCode | string | (optional) The current TV IR code that the remote is programmed with. If the remote is not presently programmed with an IR code or if the TV IR code is not known, then this value is not returned |
| result.status.remoteData[#]?.ampIRCode | string | (optional) The current AVR/AMP IR code that the remote is programmed with. If the remote is not presently programmed with an IR code or if the AVR/AMP IR code is unknown, then this value is not returned |
| result.status.remoteData[#]?.wakeupKeyCode | integer | (optional) The Linux key code of the last button to be pressed on the remote before wakeup from deepsleep |
| result.status.remoteData[#]?.wakeupConfig | string | (optional) The current deepsleep wakeup key configuration of the remote. (possible values: all - all keys on the remote will wake target from deepsleep, none - no keys on the remote will wake target from deepsleep, custom - the custom list of Linux key codes provided in wakeupCustomList will wake target from deepsleep) (must be one of the following: all, none, custom) |
| result.status.remoteData[#]?.wakeupCustomList | string | (optional) will only be present if wakeupConfig is custom, this parameter will list the linux keycodes that can wake the target from deepsleep |
| result.status.remoteData[#]?.upgradeSessionId | string | (optional) The unique identifier for the firmware update session, generated by the underlying RDK stack |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getNetStatus",
"params": {}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"status": {
"netType": 21,
"netTypeSupported": [
[
21
]
],
"pairingState": "COMPLETE",
"irProgState": "COMPLETE",
"remoteData": [
{
"macAddress": "E8:1C:FD:9A:07:1E",
"connected": true,
"name": "P073 MyQ EC201",
"remoteId": 1,
"deviceId": 65,
"make": "Omni Remotes",
"model": "EC201",
"hwVersion": "201.2.0.0",
"swVersion": "1.0.0",
"btlVersion": "2.0",
"serialNumber": "18464408B544",
"batteryPercent": 82,
"tvIRCode": "1",
"ampIRCode": "1",
"wakeupKeyCode": 65,
"wakeupConfig": "custom",
"wakeupCustomList": "[3,1]",
"upgradeSessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
}
]
},
"success": true
}
}Initiates pairing a remote with the STB on the specified network.
| Event | Description |
|---|---|
| onStatus | pairingState will be updated to reflect the current status of the request, along with updated remoteData upon a successful pairing. |
| Name | Type | Description |
|---|---|---|
| params | object | |
| params?.timeout | integer | (optional) The amount of time, in seconds, to attempt pairing before timing out. If this parameter is not present, an STB-defined default is used for the specified network. A value of 0 indicates no timeout |
| params?.macAddressList | array | (optional) A list of MAC addresses |
| params?.macAddressList[#] | string | (optional) The MAC address of the remote in hex-colon format |
| params?.screenBindEnable | boolean | (optional) Whether to enable screen bind mode. If this parameter is not present, the default value is true |
| params?.scanEnable | boolean | (optional) Whether to enable scanning for remotes. If this parameter is not present, the default value is true |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.startPairing",
"params": {
"timeout": 30,
"macAddressList": [
"E8:1C:FD:9A:07:1E"
],
"screenBindEnable": true,
"scanEnable": true
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Cancels pairing a remote with the STB on the specified network.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params?.screenBindDisable | boolean | (optional) Whether to disable screen bind mode. If this parameter is not present, the default value is true |
| params?.scanDisable | boolean | (optional) Whether to disable scanning for remotes. If this parameter is not present, the default value is true |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.stopPairing",
"params": {
"screenBindDisable": true,
"scanDisable": true
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Initializes the IR database.
No Events
| Name | Type | Description |
|---|---|---|
| params | object |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.initializeIRDB",
"params": {}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Clears the IR codes from the specified remote.
| Event | Description |
|---|---|
| onStatus | irProgState will be updated to reflect the current status of the request |
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.remoteId | integer | The remote ID of the target remote on the specified network |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.clearIRCodes",
"params": {
"remoteId": 1
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Programs an IR code into the specified remote control.
| Event | Description |
|---|---|
| onStatus | irProgState will be updated to reflect the current status of the request |
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.remoteId | integer | The remote ID of the target remote on the specified network |
| params.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| params.code | string | The IR code being programmed into the remote |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.setIRCode",
"params": {
"remoteId": 1,
"avDevType": "AMP",
"code": "M3320"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Returns a list of available IR codes for the TV and AVRs specified by the input parameters.
No Events
| Name | Type | Description |
|---|---|---|
| params | object |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result?.tvManufacturer | string | (optional) The TV manufacturer for which codes are provided |
| result?.tvModel | string | (optional) The TV model for which codes are provided (this is a best guess and might not be completely accurate) |
| result.tvCodes | array | A list of TV IR codes |
| result.tvCodes[#] | string | |
| result?.avrManufacturer | string | (optional) The AVR manufacturer for which codes are provided |
| result?.avrModel | string | (optional) The AVR model for which codes are provided (this is a best guess and might not be completely accurate) |
| result.avrCodes | array | A list of AVR IR codes |
| result.avrCodes[#] | string | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getIRCodesByAutoLookup",
"params": {}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"tvManufacturer": "TvManfacName",
"tvModel": "AH5",
"tvCodes": [
"1156"
],
"avrManufacturer": "TvManfacName",
"avrModel": "AH5",
"avrCodes": [
"R2467"
],
"success": true
}
}Returns a list of IR codes for the AV device specified by the input parameters.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| params.manufacturer | string | The manufacturer name of the AV device |
| params.model | string | The model name of the AV device |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| result.manufacturer | string | The manufacturer name of the AV device |
| result.model | string | The model name of the AV device |
| result.codes | array | A list of IR codes |
| result.codes[#] | string | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getIRCodesByNames",
"params": {
"avDevType": "AMP",
"manufacturer": "TvManfacName",
"model": "AH5901068L"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"avDevType": "AMP",
"manufacturer": "TvManfacName",
"model": "AH5901068L",
"codes": [
"R2467"
],
"success": true
}
}Returns a list of manufacturer names based on the specified input parameters.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| params.manufacturer | string | A part of the name of the manufacturer of the AV device |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| result.manufacturers | array | A list of manufacturer names |
| result.manufacturers[#] | string | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getIRDBManufacturers",
"params": {
"avDevType": "AMP",
"manufacturer": "Sa"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"avDevType": "AMP",
"manufacturers": [
"TvManfacName"
],
"success": true
}
}Returns a list of model names based on the specified input parameters.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| params.manufacturer | string | The manufacturer name of the AV device |
| params.model | string | A part (minimum of 3 characters) of the model name of the AV device |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.avDevType | string | Whether the device is a video (TV) or audio (AVR, amplifier, or soundbar) device (must be one of the following: TV, AMP) |
| result.manufacturer | string | The manufacturer name of the AV device |
| result.models | array | A list of model names |
| result.models[#] | string | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getIRDBModels",
"params": {
"avDevType": "AMP",
"manufacturer": "TvManfacName",
"model": "AH5"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"avDevType": "AMP",
"manufacturer": "TvManfacName",
"models": [
"AH5901068L"
],
"success": true
}
}Returns last key press source data.
No Events
| Name | Type | Description |
|---|---|---|
| params | object |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.controllerId | integer | The controller ID of the target remote on the specified network |
| result.timestamp | integer | The time of the last key press |
| result.sourceName | string | The source of the last key press |
| result.sourceType | string | The source type of the last key press |
| result.sourceKeyCode | integer | The source key code |
| result.bIsScreenBindMode | boolean | true if in screen bind mode, otherwise false |
| result.remoteKeypadConfig | integer | The configuration of the remote keypad |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.getLastKeypressSource",
"params": {}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"controllerId": 1,
"timestamp": 1621005572000,
"sourceName": "XR15-10",
"sourceType": "IR",
"sourceKeyCode": 192,
"bIsScreenBindMode": false,
"remoteKeypadConfig": 1,
"success": true
}
}Configures which keys on the remote will wake the target from deepsleep.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.wakeupConfig | string | The deepsleep wakeup key configuration of the remote. (possible values: all - all keys on the remote will wake target from deepsleep, none - no keys on the remote will wake target from deepsleep, custom - the custom list of Linux key codes provided in customKeys will wake target from deepsleep) (must be one of the following: all, none, custom) |
| params?.customKeys | string | (optional) Mandatory param only if wakeupConfig is custom, otherwise it should be omitted. This parameter is a list of linux keycodes that can wake the target from deepsleep |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.configureWakeupKeys",
"params": {
"wakeupConfig": "custom",
"customKeys": "3,1"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Tells the most recently used remote to beep.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.level | string | The level at which the remote will beep (must be one of the following: off, mid, high) |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.findMyRemote",
"params": {
"level": "mid"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Tells all paired and connected remotes to factory reset.
No Events
This method takes no parameters.
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.factoryReset"
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Unpairs a given or all remote(s) from the STB.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.macAddressList | array | A list of MAC addresses |
| params.macAddressList[#] | string | The MAC address of the remote in hex-colon format |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.unpair",
"params": {
"macAddressList": [
"E8:1C:FD:9A:07:1E"
]
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Starts a firmware image update session for the specified remote(s).
| Event | Description |
|---|---|
| onFirmwareUpdateProgress | Generated at 0 and 100 percent and each time a download percent increment is reached |
| Name | Type | Description |
|---|---|---|
| params | object | |
| params?.macAddress | string | (optional) The MAC address of the remote in hex-colon format |
| params.fileName | string | The full path and filename for the firmware image |
| params?.fileType | string | (optional) The type of firmware image file |
| params?.percentIncrement | integer | (optional) The increment change of a firmware update to notify (1 - 100 percent) |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.status | object | |
| result.status.sessionIdList | array | A list of session identifiers |
| result.status.sessionIdList[#] | string | The unique identifier for the firmware update session, generated by the underlying RDK stack |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.startFirmwareUpdate",
"params": {
"macAddress": "E8:1C:FD:9A:07:1E",
"fileName": "/tmp/rcu_model_x_ver_a.tgz",
"fileType": "ABC",
"percentIncrement": 5
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"status": {
"sessionIdList": [
"1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
]
},
"success": true
}
}Returns the status of an active firmware image update session.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.sessionId | string | The unique identifier for the firmware update session, generated by the underlying RDK stack |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.status | object | |
| result.status.result | object | |
| result.status.result.macAddress | string | The MAC address of the remote in hex-colon format |
| result.status.result.percentComplete | integer | The estimated percentage of the firmware update that has completed in percent (0 - 100) |
| result.status.result.upgradeState | string | The state of the firmware update session (idle, pending, success, error, canceled, invalid) |
| result.status.result.error | string | This optional object is included only if the return error string from the underlying RDK stack exists |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.statusFirmwareUpdate",
"params": {
"sessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"status": {
"result": {
"macAddress": "E8:1C:FD:9A:07:1E",
"percentComplete": 25,
"upgradeState": "success",
"error": "abort"
}
},
"success": true
}
}Cancels an active firmware image update session.
No Events
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.sessionId | string | The unique identifier for the firmware update session, generated by the underlying RDK stack |
| Name | Type | Description |
|---|---|---|
| result | object | |
| result.success | boolean | Whether the request succeeded |
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.RemoteControl.cancelFirmwareUpdate",
"params": {
"sessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
}
}{
"jsonrpc": "2.0",
"id": 42,
"result": {
"success": true
}
}Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.
The following events are provided by the org.rdk.RemoteControl plugin:
RemoteControl interface events:
| Event | Description |
|---|---|
| onStatus | Triggered at any time when the status of any one of the supported STB remote networks changes |
| onFirmwareUpdateProgress | Generated at 0 and 100 percent and each time a download percent increment is reached |
| onValidation | Generated for manual pairing validation |
Triggered at any time when the status of any one of the supported STB remote networks changes.
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.status | object | |
| params.status.netType | integer | The type of network |
| params.status.netTypeSupported | array | a list of the network types that the STB supports, Note that some devices may only support one network type |
| params.status.netTypeSupported[#] | integer | |
| params.status.pairingState | string | The current overall pairing state of the specified network (must be one of the following: INITIALISING, IDLE, SEARCHING, PAIRING, COMPLETE, FAILED) |
| params.status.irProgState | string | The current state of the IR code programming request to the remote (must be one of the following: IDLE, WAITING, COMPLETE, FAILED) |
| params.status.remoteData | array | Remote information for each paired remote control. This array may be empty, if there are no paired remotes on the specified network |
| params.status.remoteData[#] | object | |
| params.status.remoteData[#].macAddress | string | The MAC address of the remote in hex-colon format |
| params.status.remoteData[#].connected | boolean | true if the remote is connected, otherwise false |
| params.status.remoteData[#]?.name | string | (optional) The remote name |
| params.status.remoteData[#].remoteId | integer | This integer is the remote ID number, assigned by the network |
| params.status.remoteData[#]?.deviceId | integer | (optional) The device ID number that is assigned by the network |
| params.status.remoteData[#]?.make | string | (optional) The manufacturer name of the remote |
| params.status.remoteData[#]?.model | string | (optional) The remote model name |
| params.status.remoteData[#]?.hwVersion | string | (optional) The remote hardware revision |
| params.status.remoteData[#]?.swVersion | string | (optional) The remote software revision |
| params.status.remoteData[#]?.btlVersion | string | (optional) The remote bootloader revision |
| params.status.remoteData[#]?.serialNumber | string | (optional) The remote serial number |
| params.status.remoteData[#]?.batteryPercent | integer | (optional) The current remote battery level as a percentage (0 to 100) |
| params.status.remoteData[#]?.tvIRCode | string | (optional) The current TV IR code that the remote is programmed with. If the remote is not presently programmed with an IR code or if the TV IR code is not known, then this value is not returned |
| params.status.remoteData[#]?.ampIRCode | string | (optional) The current AVR/AMP IR code that the remote is programmed with. If the remote is not presently programmed with an IR code or if the AVR/AMP IR code is unknown, then this value is not returned |
| params.status.remoteData[#]?.wakeupKeyCode | integer | (optional) The Linux key code of the last button to be pressed on the remote before wakeup from deepsleep |
| params.status.remoteData[#]?.wakeupConfig | string | (optional) The current deepsleep wakeup key configuration of the remote. (possible values: all - all keys on the remote will wake target from deepsleep, none - no keys on the remote will wake target from deepsleep, custom - the custom list of Linux key codes provided in wakeupCustomList will wake target from deepsleep) (must be one of the following: all, none, custom) |
| params.status.remoteData[#]?.wakeupCustomList | string | (optional) will only be present if wakeupConfig is custom, this parameter will list the linux keycodes that can wake the target from deepsleep |
| params.status.remoteData[#]?.upgradeSessionId | string | (optional) The unique identifier for the firmware update session, generated by the underlying RDK stack |
{
"jsonrpc": "2.0",
"method": "client.events.onStatus",
"params": {
"status": {
"netType": 21,
"netTypeSupported": [
[
21
]
],
"pairingState": "COMPLETE",
"irProgState": "COMPLETE",
"remoteData": [
{
"macAddress": "E8:1C:FD:9A:07:1E",
"connected": true,
"name": "P073 MyQ EC201",
"remoteId": 1,
"deviceId": 65,
"make": "Omni Remotes",
"model": "EC201",
"hwVersion": "201.2.0.0",
"swVersion": "1.0.0",
"btlVersion": "2.0",
"serialNumber": "18464408B544",
"batteryPercent": 82,
"tvIRCode": "1",
"ampIRCode": "1",
"wakeupKeyCode": 65,
"wakeupConfig": "custom",
"wakeupCustomList": "[3,1]",
"upgradeSessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
}
]
}
}
}Generated at 0 and 100 percent and each time a download percent increment is reached.
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.sessionId | string | The unique identifier for the firmware update session, generated by the underlying RDK stack |
| params.status | object | |
| params.status.macAddress | string | The MAC address of the remote in hex-colon format |
| params.status.percentComplete | integer | The estimated percentage of the firmware update that has completed in percent (0 - 100) |
| params.status.upgradeState | string | The state of the firmware update session (idle, pending, success, error, canceled, invalid) |
| params.status.error | string | This optional object is included only if the return error string from the underlying RDK stack exists |
{
"jsonrpc": "2.0",
"method": "client.events.onFirmwareUpdateProgress",
"params": {
"sessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf",
"status": {
"macAddress": "E8:1C:FD:9A:07:1E",
"percentComplete": 25,
"upgradeState": "success",
"error": "abort"
}
}
}Generated for manual pairing validation.
| Name | Type | Description |
|---|---|---|
| params | object | |
| params.status | object | |
| params.status.status | string | The validation status of the manual pairing request. (must be one of the following: SUCCESS, PENDING, TIMEOUT, COLLISION, FAILURE, ABORT, FULL_ABORT, FAILED, BIND_TABLE_FULL, IN_PROGRESS, CTRLM_RESTART) |
| params.status?.code | array | (optional) The pairing code for manual pairing which consists of 3 key codes (KEY_*) |
| params.status?.code[#] | integer | (optional) |
| params.status?.key | integer | (optional) A single key code (KEY_*) that is used to validate against the manual pair code in manual pairing mode |
{
"jsonrpc": "2.0",
"method": "client.events.onValidation",
"params": {
"status": {
"status": "PENDING",
"code": [
2,
3,
4
],
"key": 2
}
}
}