Skip to content

Latest commit

 

History

History
1342 lines (1058 loc) · 38.5 KB

File metadata and controls

1342 lines (1058 loc) · 38.5 KB

RemoteControl Plugin

A org.rdk.RemoteControl plugin for Thunder framework.

Table of Contents

Abbreviation, Acronyms and Terms

[Refer to this link]

Description

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].

Configuration

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

Methods

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

getApiVersionNumber

Gets the current API version number.

Events

No Events

Parameters

This method takes no parameters.

Result

Name Type Description
result object
result.version integer The API version number
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getApiVersionNumber"
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "version": 1,
        "success": true
    }
}

getNetStatus

Returns the status information provided by the last onStatus event for the specified network.

Events

No Events

Parameters

Name Type Description
params object

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getNetStatus",
    "params": {}
}

Response

{
    "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
    }
}

startPairing

Initiates pairing a remote with the STB on the specified network.

Events

Event Description
onStatus pairingState will be updated to reflect the current status of the request, along with updated remoteData upon a successful pairing.

Parameters

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

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.startPairing",
    "params": {
        "timeout": 30,
        "macAddressList": [
            "E8:1C:FD:9A:07:1E"
        ],
        "screenBindEnable": true,
        "scanEnable": true
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

stopPairing

Cancels pairing a remote with the STB on the specified network.

Events

No Events

Parameters

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

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.stopPairing",
    "params": {
        "screenBindDisable": true,
        "scanDisable": true
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

initializeIRDB

Initializes the IR database.

Events

No Events

Parameters

Name Type Description
params object

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.initializeIRDB",
    "params": {}
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

clearIRCodes

Clears the IR codes from the specified remote.

Events

Event Description
onStatus irProgState will be updated to reflect the current status of the request

Parameters

Name Type Description
params object
params.remoteId integer The remote ID of the target remote on the specified network

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.clearIRCodes",
    "params": {
        "remoteId": 1
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

setIRCode

Programs an IR code into the specified remote control.

Events

Event Description
onStatus irProgState will be updated to reflect the current status of the request

Parameters

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

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.setIRCode",
    "params": {
        "remoteId": 1,
        "avDevType": "AMP",
        "code": "M3320"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

getIRCodesByAutoLookup

Returns a list of available IR codes for the TV and AVRs specified by the input parameters.

Events

No Events

Parameters

Name Type Description
params object

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getIRCodesByAutoLookup",
    "params": {}
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "tvManufacturer": "TvManfacName",
        "tvModel": "AH5",
        "tvCodes": [
            "1156"
        ],
        "avrManufacturer": "TvManfacName",
        "avrModel": "AH5",
        "avrCodes": [
            "R2467"
        ],
        "success": true
    }
}

getIRCodesByNames

Returns a list of IR codes for the AV device specified by the input parameters.

Events

No Events

Parameters

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

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getIRCodesByNames",
    "params": {
        "avDevType": "AMP",
        "manufacturer": "TvManfacName",
        "model": "AH5901068L"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "avDevType": "AMP",
        "manufacturer": "TvManfacName",
        "model": "AH5901068L",
        "codes": [
            "R2467"
        ],
        "success": true
    }
}

getIRDBManufacturers

Returns a list of manufacturer names based on the specified input parameters.

Events

No Events

Parameters

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

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getIRDBManufacturers",
    "params": {
        "avDevType": "AMP",
        "manufacturer": "Sa"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "avDevType": "AMP",
        "manufacturers": [
            "TvManfacName"
        ],
        "success": true
    }
}

getIRDBModels

Returns a list of model names based on the specified input parameters.

Events

No Events

Parameters

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

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getIRDBModels",
    "params": {
        "avDevType": "AMP",
        "manufacturer": "TvManfacName",
        "model": "AH5"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "avDevType": "AMP",
        "manufacturer": "TvManfacName",
        "models": [
            "AH5901068L"
        ],
        "success": true
    }
}

getLastKeypressSource

Returns last key press source data.

Events

No Events

Parameters

Name Type Description
params object

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.getLastKeypressSource",
    "params": {}
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "controllerId": 1,
        "timestamp": 1621005572000,
        "sourceName": "XR15-10",
        "sourceType": "IR",
        "sourceKeyCode": 192,
        "bIsScreenBindMode": false,
        "remoteKeypadConfig": 1,
        "success": true
    }
}

configureWakeupKeys

Configures which keys on the remote will wake the target from deepsleep.

Events

No Events

Parameters

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

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.configureWakeupKeys",
    "params": {
        "wakeupConfig": "custom",
        "customKeys": "3,1"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

findMyRemote

Tells the most recently used remote to beep.

Events

No Events

Parameters

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)

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.findMyRemote",
    "params": {
        "level": "mid"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

factoryReset

Tells all paired and connected remotes to factory reset.

Events

No Events

Parameters

This method takes no parameters.

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.factoryReset"
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

unpair

Unpairs a given or all remote(s) from the STB.

Events

No Events

Parameters

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

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.unpair",
    "params": {
        "macAddressList": [
            "E8:1C:FD:9A:07:1E"
        ]
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

startFirmwareUpdate

Starts a firmware image update session for the specified remote(s).

Events

Event Description
onFirmwareUpdateProgress Generated at 0 and 100 percent and each time a download percent increment is reached

Parameters

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)

Result

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

Example

Request

{
    "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
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "status": {
            "sessionIdList": [
                "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
            ]
        },
        "success": true
    }
}

statusFirmwareUpdate

Returns the status of an active firmware image update session.

Events

No Events

Parameters

Name Type Description
params object
params.sessionId string The unique identifier for the firmware update session, generated by the underlying RDK stack

Result

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

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.statusFirmwareUpdate",
    "params": {
        "sessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "status": {
            "result": {
                "macAddress": "E8:1C:FD:9A:07:1E",
                "percentComplete": 25,
                "upgradeState": "success",
                "error": "abort"
            }
        },
        "success": true
    }
}

cancelFirmwareUpdate

Cancels an active firmware image update session.

Events

No Events

Parameters

Name Type Description
params object
params.sessionId string The unique identifier for the firmware update session, generated by the underlying RDK stack

Result

Name Type Description
result object
result.success boolean Whether the request succeeded

Example

Request

{
    "jsonrpc": "2.0",
    "id": 42,
    "method": "org.rdk.RemoteControl.cancelFirmwareUpdate",
    "params": {
        "sessionId": "1b11359e-23fe-4f2f-9ba8-cc19b87203cf"
    }
}

Response

{
    "jsonrpc": "2.0",
    "id": 42,
    "result": {
        "success": true
    }
}

Notifications

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

onStatus

Triggered at any time when the status of any one of the supported STB remote networks changes.

Parameters

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

Example

{
    "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"
                }
            ]
        }
    }
}

onFirmwareUpdateProgress

Generated at 0 and 100 percent and each time a download percent increment is reached.

Parameters

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

Example

{
    "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"
        }
    }
}

onValidation

Generated for manual pairing validation.

Parameters

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

Example

{
    "jsonrpc": "2.0",
    "method": "client.events.onValidation",
    "params": {
        "status": {
            "status": "PENDING",
            "code": [
                2,
                3,
                4
            ],
            "key": 2
        }
    }
}