Device

    Device


    Article summary


    title: Device

    version: 1.0.0
    layout: default
    sdk: manage

    # Device Module

    Version Device 1.0.0

    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/manage-sdk'
    

    Overview

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

    Methods

    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:

    ParamTypeRequiredSummary
    eventstringYesThe event to listen for, see Events.
    callbackfunctionYesA function that will be invoked when the event occurs.

    Promise resolution:

    TypeDescription
    numberListener ID to clear the callback method and stop receiving the event, e.g. Device.clear(id)

    Callback parameters:

    ParamTypeRequiredSummary
    dataanyYesThe 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:

    ParamTypeRequiredSummary
    callbackfunctionYesA function that will be invoked when the event occurs. The event data depends on which event is firing, see Events.

    Callback parameters:

    ParamTypeRequiredSummary
    eventstringYesThe event that has occured listen for, see Events.
    dataanyYesThe event data, which depends on which event is firing, see Events.

    Promise resolution:

    TypeDescription
    numberListener 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.

    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:

    RoleCapability
    usesxrn:firebolt:capability:device:name

    Examples

    Default example #1

    JavaScript:

    import { Device } from '@firebolt-js/manage-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/manage-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 set the value of name call the method like this:

    function name(value: string): Promise<void>
    

    Parameters:

    ParamTypeRequiredDescription
    valuestringtruethe device friendly-name

    Promise resolution:

    null
    

    Examples

    Default example #1

    JavaScript:

    import { Device } from '@firebolt-js/manage-sdk'
    
    Device.name("Living Room")
        .then(result => {
            console.log(result)
        })
    

    Value of result:

    null
    
    JSON-RPC:Request:
    {
    	"jsonrpc": "2.0",
    	"id": 1,
    	"method": "Device.setName",
    	"params": {
    		"value": "Living Room"
    	}
    }
    

    Response:

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

    Default example #2

    JavaScript:

    import { Device } from '@firebolt-js/manage-sdk'
    
    Device.name("Kitchen")
        .then(result => {
            console.log(result)
        })
    

    Value of result:

    null
    
    JSON-RPC:Request:
    {
    	"jsonrpc": "2.0",
    	"id": 1,
    	"method": "Device.setName",
    	"params": {
    		"value": "Kitchen"
    	}
    }
    

    Response:

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

    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/manage-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/manage-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"
    }
    

    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:

    ParamTypeRequiredSummary
    eventstringYesThe event to listen for, see Events.
    callbackfunctionYesA function that will be invoked when the event occurs.

    Promise resolution:

    TypeDescription
    numberListener ID to clear the callback method and stop receiving the event, e.g. Device.clear(id)

    Callback parameters:

    ParamTypeRequiredSummary
    dataanyYesThe 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:

    ParamTypeRequiredSummary
    callbackfunctionYesA function that will be invoked when the event occurs. The event data depends on which event is firing, see Events.

    Callback parameters:

    ParamTypeRequiredSummary
    eventstringYesThe event that has occured listen for, see Events.
    dataanyYesThe event data, which depends on which event is firing, see Events.

    Promise resolution:

    TypeDescription
    numberListener 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.

    provision

    Used by a distributor to push provision info to firebolt.

    function provision(accountId: string, deviceId: string, distributorId?: string): Promise<void>
    

    Parameters:

    ParamTypeRequiredDescription
    accountIdstringtrueThe id of the account that is device is attached to in the back office.
    ,deviceIdstringtrue
    ,distributorIdstringfalse

    Promise resolution:

    void
    

    Capabilities:

    RoleCapability
    managesxrn:firebolt:capability:account:id
    xrn:firebolt:capability:device:id
    xrn:firebolt:capability:device:distributor

    Examples

    Default Example

    JavaScript:

    import { Device } from '@firebolt-js/manage-sdk'
    
    Device.provision("12345678910", "987654321111", null)
        .then(result => {
            console.log(result)
        })
    

    Value of result:

    null
    
    JSON-RPC:Request:
    {
    	"jsonrpc": "2.0",
    	"id": 1,
    	"method": "Device.provision",
    	"params": {
    		"accountId": "12345678910",
    		"deviceId": "987654321111"
    	}
    }
    

    Response:

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

    With distributor id

    JavaScript:

    import { Device } from '@firebolt-js/manage-sdk'
    
    Device.provision("12345678910", "987654321111", "global_partner")
        .then(result => {
            console.log(result)
        })
    

    Value of result:

    null
    
    JSON-RPC:Request:
    {
    	"jsonrpc": "2.0",
    	"id": 1,
    	"method": "Device.provision",
    	"params": {
    		"accountId": "12345678910",
    		"deviceId": "987654321111",
    		"distributorId": "global_partner"
    	}
    }
    

    Response:

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

    Events

    deviceNameChanged

    function listen('deviceNameChanged', (string) => void): Promise<number>
    

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

    Event value:

    string
    

    Capabilities:

    RoleCapability
    usesxrn:firebolt:capability:device:name

    Examples

    Getting the device name

    JavaScript:

    import { Device } from '@firebolt-js/manage-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"
    }
    

    nameChanged

    See: name


    Was this article helpful?

    What's Next