Device Module

Version 0.10.0

Overview

A module for querying about the device and it’s capabilities.

OpenRPC

Firebolt APIs are maintained in the rdkcentral/firebolt-core-sdk GitHub repository.

You can see this API in the device.json OpenRPC JSON-Schema document.

Table of Contents

 

Usage

To use the Device module, you can import it into your project from the Firebolt SDK:

import { Device } from '@firebolt-js/sdk'

Methods

audio

Get the supported audio profiles

To get the value of audio call the method like this:

function audio(): Promise<AudioProfiles>

Promise resolution:

Type Description
AudioProfiles the supported audio profiles

Examples

Getting the supported audio profiles

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.audio()
    .then(supportedAudioProfiles => {
        console.log(supportedAudioProfiles)
    })

Value of supportedAudioProfiles:

{
  "stereo": true,
  "dolbyDigital5.1": true,
  "dolbyDigital5.1+": true,
  "dolbyAtmos": true
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.audio",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "stereo": true,
    "dolbyDigital5.1": true,
    "dolbyDigital5.1+": true,
    "dolbyAtmos": true
  }
}

To set the value of audio call the method like this:

function audio(): Promise<ListenResponse | AudioProfiles>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Getting the supported audio profiles

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.audio(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.audio",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "stereo": true,
    "dolbyDigital5.1": true,
    "dolbyDigital5.1+": true,
    "dolbyAtmos": true
  }
}

To subscribe to notifications when the value changes, call the method like this:

function audio (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.audio((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

distributor

Get the distributor ID for this device

To get the value of distributor call the method like this:

function distributor(): Promise<string>

Promise resolution:

Type Description
string the distributor ID

Examples

Getting the distributor ID

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.distributor()
    .then(distributorId => {
        console.log(distributorId)
    })

Value of distributorId:

"Company"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.distributor",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Company"
}

To set the value of distributor call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.distributor()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function distributor (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.distributor((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

hdcp

Get the supported HDCP profiles

To get the value of hdcp call the method like this:

function hdcp(): Promise<BooleanMap>

Promise resolution:

Type Description
BooleanMap the supported HDCP profiles

Examples

Getting the supported HDCP profiles

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.hdcp()
    .then(supportedHdcpProfiles => {
        console.log(supportedHdcpProfiles)
    })

Value of supportedHdcpProfiles:

{
  "hdcp1.4": true,
  "hdcp2.2": true
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.hdcp",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "hdcp1.4": true,
    "hdcp2.2": true
  }
}

To set the value of hdcp call the method like this:

function hdcp(): Promise<ListenResponse | BooleanMap>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Getting the supported HDCP profiles

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.hdcp(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.hdcp",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "hdcp1.4": true,
    "hdcp2.2": true
  }
}

To subscribe to notifications when the value changes, call the method like this:

function hdcp (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.hdcp((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

hdr

Get the supported HDR profiles

To get the value of hdr call the method like this:

function hdr(): Promise<BooleanMap>

Promise resolution:

Type Description
BooleanMap the supported HDR profiles

Examples

Getting the supported HDR profiles

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.hdr()
    .then(supportedHdrProfiles => {
        console.log(supportedHdrProfiles)
    })

Value of supportedHdrProfiles:

{
  "hdr10": true,
  "hdr10Plus": true,
  "dolbyVision": true,
  "hlg": true
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.hdr",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "hdr10": true,
    "hdr10Plus": true,
    "dolbyVision": true,
    "hlg": true
  }
}

To set the value of hdr call the method like this:

function hdr(): Promise<ListenResponse | BooleanMap>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Getting the supported HDR profiles

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.hdr(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.hdr",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "hdr10": true,
    "hdr10Plus": true,
    "dolbyVision": true,
    "hlg": true
  }
}

To subscribe to notifications when the value changes, call the method like this:

function hdr (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.hdr((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

id

Get the platform back-office device identifier

To get the value of id call the method like this:

function id(): Promise<string>

Promise resolution:

Type Description
string the id

Examples

Default Example

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.id()
    .then(id => {
        console.log(id)
    })

Value of id:

"123"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.id",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "123"
}

To set the value of id call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.id()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function id (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.id((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

listen

Listen for events from this module.

To listen to a specific event pass the event name as the first parameter:

Device.listen(event: string, (data: any) => void): Promise<number>

Parameters:

Param Type Required Summary
event string Yes The event to listen for, see Events.
callback function Yes A function that will be invoked when the event occurs.

Promise resolution:

Type Description
number Listener ID to clear the callback method and stop receiving the event, e.g. Device.clear(id)

Callback parameters:

Param Type Required Summary
data any Yes The event data, which depends on which event is firing, see Events.

To listen to all events from this module pass only a callback, without specifying an event name:

Device.listen((event: string, data: any) => void): Promise<number>

Parameters:

Param Type Required Summary
callback function Yes A function that will be invoked when the event occurs. The event data depends on which event is firing, see Events.

Callback parameters:

Param Type Required Summary
event string Yes The event that has occured listen for, see Events.
data any Yes The event data, which depends on which event is firing, see Events.

Promise resolution:

Type Description
number Listener ID to clear the callback method and stop receiving the event, e.g. Device.clear(id)

See Listening for events for more information and examples.


make

Get the device make

To get the value of make call the method like this:

function make(): Promise<string>

Promise resolution:

Type Description
string the device make

Examples

Getting the device make

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.make()
    .then(make => {
        console.log(make)
    })

Value of make:

"Arris"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.make",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Arris"
}

To set the value of make call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.make()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function make (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.make((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

model

Get the device model

To get the value of model call the method like this:

function model(): Promise<string>

Promise resolution:

Type Description
string the device model

Examples

Getting the device model

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.model()
    .then(model => {
        console.log(model)
    })

Value of model:

"xi6"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.model",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "xi6"
}

To set the value of model call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.model()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function model (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.model((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

name

The human readable name of the device

To get the value of name call the method like this:

function name(): Promise<string>

Promise resolution:

Type Description
string the device friendly-name

Examples

Example value for device name

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.name()
    .then(value => {
        console.log(value)
    })

Value of value:

"Living Room"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.name",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Living Room"
}

To set the value of name call the method like this:

function name(): Promise<ListenResponse | string>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Example value for device name

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.name(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.name",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Living Room"
}

To subscribe to notifications when the value changes, call the method like this:

function name (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.name((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

network

Get the current network status and type

To get the value of network call the method like this:

function network(): Promise<object>

Promise resolution:

the status and type

Field Type Description
state NetworkState  
type NetworkType  

Examples

Getting the network info

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.network()
    .then(networkInfo => {
        console.log(networkInfo)
    })

Value of networkInfo:

{
  "state": "connected",
  "type": "wifi"
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.network",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "state": "connected",
    "type": "wifi"
  }
}

To set the value of network call the method like this:

function network(): Promise<ListenResponse | object>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Getting the network info

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.network(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.network",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "state": "connected",
    "type": "wifi"
  }
}

To subscribe to notifications when the value changes, call the method like this:

function network (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.network((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

once

Listen for only one occurance of an event from this module. The callback will be cleared after one event.

To listen to a specific event pass the event name as the first parameter:

Device.once(event: string, (data: any) => void): Promise<number>

Parameters:

Param Type Required Summary
event string Yes The event to listen for, see Events.
callback function Yes A function that will be invoked when the event occurs.

Promise resolution:

Type Description
number Listener ID to clear the callback method and stop receiving the event, e.g. Device.clear(id)

Callback parameters:

Param Type Required Summary
data any Yes The event data, which depends on which event is firing, see Events.

To listen to all events from this module pass only a callback, without specifying an event name:

Device.once((event: string, data: any) => void): Promise<number>

Parameters:

Param Type Required Summary
callback function Yes A function that will be invoked when the event occurs. The event data depends on which event is firing, see Events.

Callback parameters:

Param Type Required Summary
event string Yes The event that has occured listen for, see Events.
data any Yes The event data, which depends on which event is firing, see Events.

Promise resolution:

Type Description
number Listener ID to clear the callback method and stop receiving the event, e.g. Device.clear(id)

See Listening for events for more information and examples.


platform

Get the platform ID for this device

To get the value of platform call the method like this:

function platform(): Promise<string>

Promise resolution:

Type Description
string the platform ID

Examples

Getting the platform ID

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.platform()
    .then(platformId => {
        console.log(platformId)
    })

Value of platformId:

"WPE"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.platform",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "WPE"
}

To set the value of platform call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.platform()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function platform (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.platform((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

screenResolution

Get the current screen resolution

To get the value of screenResolution call the method like this:

function screenResolution(): Promise<[number, number]>

Promise resolution:

Type Description
[number, number] the resolution

Examples

Getting the screen resolution

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.screenResolution()
    .then(screenResolution => {
        console.log(screenResolution)
    })

Value of screenResolution:

[
  1920,
  1080
]
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.screenResolution",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    1920,
    1080
  ]
}

To set the value of screenResolution call the method like this:

function screenResolution(): Promise<ListenResponse | [number, number]>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Getting the screen resolution

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.screenResolution(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.screenResolution",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    1920,
    1080
  ]
}

To subscribe to notifications when the value changes, call the method like this:

function screenResolution (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.screenResolution((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

sku

Get the device sku

To get the value of sku call the method like this:

function sku(): Promise<string>

Promise resolution:

Type Description
string the device sku

Examples

Getting the device sku

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.sku()
    .then(sku => {
        console.log(sku)
    })

Value of sku:

"AX061AEI"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.sku",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "AX061AEI"
}

To set the value of sku call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.sku()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function sku (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.sku((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

type

Get the device type

To get the value of type call the method like this:

function type(): Promise<string>

Promise resolution:

Type Description
string the device type

Examples

Getting the device type

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.type()
    .then(deviceType => {
        console.log(deviceType)
    })

Value of deviceType:

"STB"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.type",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "STB"
}

To set the value of type call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.type()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function type (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.type((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

uid

Gets a unique id for the current app & device

To get the value of uid call the method like this:

function uid(): Promise<string>

Promise resolution:

Type Description
string a unique ID

Examples

Getting the unique ID

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.uid()
    .then(uniqueId => {
        console.log(uniqueId)
    })

Value of uniqueId:

"ee6723b8-7ab3-462c-8d93-dbf61227998e"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.uid",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "ee6723b8-7ab3-462c-8d93-dbf61227998e"
}

To set the value of uid call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.uid()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function uid (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.uid((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

version

Get the SDK, OS and other version info

To get the value of version call the method like this:

function version(): Promise<object>

Promise resolution:

the versions

Field Type Description
sdk SemanticVersion The Firebolt SDK version
api SemanticVersion The lateset Firebolt API version supported by the curent device.
firmware SemanticVersion The device firmware version.
os SemanticVersion Deprecated Use firmware, instead.
debug string Detail version as a string, for debugging purposes

Examples

Getting the os and sdk versions

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.version()
    .then(versions => {
        console.log(versions)
    })

Value of versions:

{
  "sdk": {
    "major": 0,
    "minor": 8,
    "patch": 0,
    "readable": "Firebolt JS SDK v0.8.0"
  },
  "api": {
    "major": 0,
    "minor": 8,
    "patch": 0,
    "readable": "Firebolt API v0.8.0"
  },
  "firmware": {
    "major": 1,
    "minor": 2,
    "patch": 3,
    "readable": "Device Firmware v1.2.3"
  },
  "os": {
    "major": 0,
    "minor": 1,
    "patch": 0,
    "readable": "Firebolt OS v0.1.0"
  },
  "debug": "Non-parsable build info for error logging only."
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.version",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "sdk": {
      "major": 0,
      "minor": 8,
      "patch": 0,
      "readable": "Firebolt JS SDK v0.8.0"
    },
    "api": {
      "major": 0,
      "minor": 8,
      "patch": 0,
      "readable": "Firebolt API v0.8.0"
    },
    "firmware": {
      "major": 1,
      "minor": 2,
      "patch": 3,
      "readable": "Device Firmware v1.2.3"
    },
    "os": {
      "major": 0,
      "minor": 1,
      "patch": 0,
      "readable": "Firebolt OS v0.1.0"
    },
    "debug": "Non-parsable build info for error logging only."
  }
}

To set the value of version call the method like this:

Parameters:

Param Type Required Summary
     

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.version()
JSON-RPC:

Request:

Response:

To subscribe to notifications when the value changes, call the method like this:

function version (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.version((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

videoResolution

Get the current video resolution

To get the value of videoResolution call the method like this:

function videoResolution(): Promise<[number, number]>

Promise resolution:

Type Description
[number, number] the resolution

Examples

Getting the video resolution

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.videoResolution()
    .then(videoResolution => {
        console.log(videoResolution)
    })

Value of videoResolution:

[
  1920,
  1080
]
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.videoResolution",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    1920,
    1080
  ]
}

To set the value of videoResolution call the method like this:

function videoResolution(): Promise<ListenResponse | [number, number]>

Parameters:

Param Type Required Summary

Promise resolution:

Type Summary
void Promise resolves with no value when the operation is complete.

Examples

Getting the video resolution

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.videoResolution(true)
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.videoResolution",
  "params": {}
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    1920,
    1080
  ]
}

To subscribe to notifications when the value changes, call the method like this:

function videoResolution (subscriber: () => void): Promise<listenerId>

Parameters:

Param Type Required Summary
     
subscriber function Yes Callback to execute when the value changes.

Promise resolution:

Type Summary
listenerId The id of the listener that can be used with Device.clear(listenerId) to unsubscribe

Callback parameters:

Param Type Required Summary
`    

Examples

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.videoResolution((value) => {
  // property value was changed
  console.log(value)
}).then(listenerId => {
  // you can clear this listener w/ Device.clear(listenerId)
})

value of value:

JSON-RPC:

Request:

Response:

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "listening": "true"
  }
}

Events

deviceNameChanged

This API is deprecated since version 0.6.0. Use Device.name() instead.

Get the human readable name of the device

See also: listen(), once(), clear().

Event value:

Type Description
string the device friendly-name

Examples

Getting the device name:

JavaScript:

import { Device } from '@firebolt-js/sdk'

Device.listen('deviceNameChanged', value => {
  console.log(value)
})

Value of value

"Living Room"
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "device.onDeviceNameChanged",
  "params": {
    "listen": true
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Living Room"
}

Additional events

The following events are documented as part of a related set of method APIs.

For more information, follow the links under the “Documentation” column.

JavaScript RPC Payload Documentation
cp hdcp ListenResponse hdcp
hdr hdr ListenResponse hdr
dio audio ListenResponse audio
reenResolution screenResolution ListenResponse screenResolution
deoResolution videoResolution ListenResponse videoResolution
me name ListenResponse name
twork network ListenResponse network

Schemas

Resolution

type Resolution = [number, number]

NetworkType

The type of network that is currently active

type NetworkType = 'wifi' | 'ethernet' | 'hybrid'

NetworkState

The type of network that is currently active

type NetworkState = 'connected' | 'disconnected'

AudioProfiles

type AudioProfiles = {
  stereo: boolean
  "dolbyDigital5.1": boolean
  "dolbyDigital7.1": boolean
  "dolbyDigital5.1+": boolean
  "dolbyDigital7.1+": boolean
  dolbyAtmos: boolean
}

See also:


Go To Top