- Print
Device
- Print
Device Module 0.15.0
Usage
To use the Device module, you can import it into your project from the Firebolt SDK:
import { Device } from '@firebolt-js/sdk'
Overview
A module for querying about the device and it's capabilities.
Methods
audio
Get the supported audio profiles
To get the value of audio
call the method like this:
function audio(): Promise<AudioProfiles>
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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 subscribe to notifications when the value changes, call the method like this:
function audio(callback: (value) => AudioProfiles): Promise<number>
Promise resolution:
number
Examples
Getting the supported audio profiles
JavaScript:
import { Device } from '@firebolt-js/sdk'
audio(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of supportedAudioProfiles
:
{
"stereo": true,
"dolbyDigital5.1": true,
"dolbyDigital5.1+": true,
"dolbyAtmos": true
}
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onAudioChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"stereo": true,
"dolbyDigital5.1": true,
"dolbyDigital5.1+": true,
"dolbyAtmos": 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:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:distributor |
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"
}
hdcp
Get the supported HDCP profiles
To get the value of hdcp
call the method like this:
function hdcp(): Promise<BooleanMap>
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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 subscribe to notifications when the value changes, call the method like this:
function hdcp(callback: (value) => BooleanMap): Promise<number>
Promise resolution:
number
Examples
Getting the supported HDCP profiles
JavaScript:
import { Device } from '@firebolt-js/sdk'
hdcp(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of supportedHdcpProfiles
:
{
"hdcp1.4": true,
"hdcp2.2": true
}
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onHdcpChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"hdcp1.4": true,
"hdcp2.2": true
}
}
hdr
Get the supported HDR profiles
To get the value of hdr
call the method like this:
function hdr(): Promise<BooleanMap>
Promise resolution:
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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 subscribe to notifications when the value changes, call the method like this:
function hdr(callback: (value) => BooleanMap): Promise<number>
Promise resolution:
number
Examples
Getting the supported HDR profiles
JavaScript:
import { Device } from '@firebolt-js/sdk'
hdr(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of supportedHdrProfiles
:
{
"hdr10": true,
"hdr10Plus": true,
"dolbyVision": true,
"hlg": true
}
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onHdrChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"hdr10": true,
"hdr10Plus": true,
"dolbyVision": true,
"hlg": 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:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device: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"
}
listen
To listen to a specific event pass the event name as the first parameter:
listen(event: string, callback: (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:
listen(callback: (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:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability: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"
}
model
Get the device model
To get the value of model
call the method like this:
function model(): Promise<string>
Promise resolution:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability: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"
}
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:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:name |
Examples
Default example #1
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"
}
Default example #2
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": "Kitchen"
}
To subscribe to notifications when the value changes, call the method like this:
function name(callback: (value) => string): Promise<number>
Promise resolution:
number
Examples
Default example #1
JavaScript:
import { Device } from '@firebolt-js/sdk'
name(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of value
:
"Living Room"
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onNameChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": "Living Room"
}
Default example #2
JavaScript:
import { Device } from '@firebolt-js/sdk'
name(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of value
:
"Living Room"
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onNameChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": "Kitchen"
}
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:
Property | Type | Description |
---|---|---|
state | NetworkState | |
type | NetworkType |
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:network:status |
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 subscribe to notifications when the value changes, call the method like this:
function network(callback: (value) => object): Promise<number>
Promise resolution:
number
Examples
Getting the network info
JavaScript:
import { Device } from '@firebolt-js/sdk'
network(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of networkInfo
:
{
"state": "connected",
"type": "wifi"
}
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onNetworkChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"state": "connected",
"type": "wifi"
}
}
once
To listen to a single instance of a specific event pass the event name as the first parameter:
once(event: string, callback: (data: any) => void): Promise<number>
The once
method will only pass the next instance of this event, and then dicard the listener you provided.
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 the next instance only of any events from this module pass only a callback, without specifying an event name:
once(callback: (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:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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"
}
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 Resolution = [number, number]
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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 subscribe to notifications when the value changes, call the method like this:
function screenResolution(callback: (value) => [number, number]): Promise<number>
Promise resolution:
number
Examples
Getting the screen resolution
JavaScript:
import { Device } from '@firebolt-js/sdk'
screenResolution(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of screenResolution
:
[
1920,
1080
]
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onScreenResolutionChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
1920,
1080
]
}
sku
Get the device sku
To get the value of sku
call the method like this:
function sku(): Promise<string>
Promise resolution:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability: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"
}
type
Get the device type
To get the value of type
call the method like this:
function type(): Promise<string>
Promise resolution:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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"
}
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:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:uid |
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"
}
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:
Property | 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 |
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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."
}
}
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 Resolution = [number, number]
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device:info |
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 subscribe to notifications when the value changes, call the method like this:
function videoResolution(callback: (value) => [number, number]): Promise<number>
Promise resolution:
number
Examples
Getting the video resolution
JavaScript:
import { Device } from '@firebolt-js/sdk'
videoResolution(value => {
console.log(value)
}).then(listenerId => {
console.log(listenerId)
})
Value of videoResolution
:
[
1920,
1080
]
JSON-RPC:
Request:{
"jsonrpc": "2.0",
"id": 1,
"method": "Device.onVideoResolutionChanged",
"params": {
"listen": true
}
}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
1920,
1080
]
}
Events
audioChanged
See: audio
deviceNameChanged
function listen('deviceNameChanged', (string) => void): Promise<number>
See also: listen(), once(), clear().
Event value:
string
Capabilities:
Role | Capability |
---|---|
uses | xrn:firebolt:capability:device: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"
}
hdcpChanged
See: hdcp
hdrChanged
See: hdr
nameChanged
See: name
networkChanged
See: network
screenResolutionChanged
See: screenResolution
videoResolutionChanged
See: videoResolution
Types
AudioProfiles
type AudioProfiles = {
stereo: boolean
"dolbyDigital5.1": boolean
"dolbyDigital7.1": boolean
"dolbyDigital5.1+": boolean
"dolbyDigital7.1+": boolean
dolbyAtmos: boolean
}
See also:
BooleanMap
'stereo' | 'dolbyDigital5.1' | 'dolbyDigital7.1' | 'dolbyDigital5.1+' | 'dolbyDigital7.1+' | 'dolbyAtmos'
Resolution
type Resolution = [number, number]
NetworkState
The type of network that is currently active
enum NetworkState {
CONNECTED = 'connected',
DISCONNECTED = 'disconnected'
}
NetworkType
The type of network that is currently active
enum NetworkType {
WIFI = 'wifi',
ETHERNET = 'ethernet',
HYBRID = 'hybrid'
}