Wifi | Firebolt

Wifi Module


Version 0.1.0-alpha.4

Overview

A module for providing support for Wifi.

OpenRPC

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

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

Table of Contents

 

Usage

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

import { Wifi } from '@firebolt-js/manage-sdk'

Methods

scan

Scan available wifi networks in the location.

function scan(timeout?: Timeout): Promise<AccessPointList>

Parameters:

Param Type Required Summary
timeout Timeout false  

Promise resolution:

Type Description
AccessPointList List of scanned Wifi networks available near the device.

Examples

Successful Wifi List

JavaScript:

import { Wifi } from '@firebolt-js/manage-sdk'

Wifi.scan(30)
    .then(list => {
        console.log(list)
    })

Value of list:

{
  "list": [
    {
      "ssid": "DND",
      "security": "wpa2Psk",
      "signalStrength": -70,
      "frequency": 2.4
    },
    {
      "ssid": "Fortnite",
      "security": "WPA2_ENTERPRISE_AES",
      "signalStrength": -70,
      "frequency": 5
    },
    {
      "ssid": "Guardian",
      "security": "none",
      "signalStrength": -70,
      "frequency": 2.4
    }
  ]
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "wifi.scan",
  "params": {
    "timeout": 30
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "list": [
      {
        "ssid": "DND",
        "security": "wpa2Psk",
        "signalStrength": -70,
        "frequency": 2.4
      },
      {
        "ssid": "Fortnite",
        "security": "WPA2_ENTERPRISE_AES",
        "signalStrength": -70,
        "frequency": 5
      },
      {
        "ssid": "Guardian",
        "security": "none",
        "signalStrength": -70,
        "frequency": 2.4
      }
    ]
  }
}

connect

Connect the device to the specified SSID.

function connect(ssid?: string, passphrase?: string, security?: WifiSecurityMode): Promise<AccessPoint>

Parameters:

Param Type Required Summary
ssid string false  
passphrase string false  
security WifiSecurityMode false  

Promise resolution:

Type Description
AccessPoint Properties of a scanned wifi list item.

Examples

Connect to a wpa2Psk Wifi with password

JavaScript:

import { Wifi } from '@firebolt-js/manage-sdk'

Wifi.connect("DND", "gargoyle", "wpa2Psk")
    .then(connectedWifi => {
        console.log(connectedWifi)
    })

Value of connectedWifi:

{
  "ssid": "DND",
  "security": "wpa2Psk",
  "signalStrength": -70,
  "frequency": 2.4
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "wifi.connect",
  "params": {
    "ssid": "DND",
    "passphrase": "gargoyle",
    "security": "wpa2Psk"
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "ssid": "DND",
    "security": "wpa2Psk",
    "signalStrength": -70,
    "frequency": 2.4
  }
}
More examples… Connect to a WPA2 PSK Wifi with password

JavaScript:

import { Wifi } from '@firebolt-js/manage-sdk'

Wifi.connect("Guardian WIFI", "", "none")
    .then(connectedWifi => {
        console.log(connectedWifi)
    })

Value of connectedWifi:

{
  "ssid": "Guardian WIFI",
  "security": "none",
  "signalStrength": -70,
  "frequency": 2.4
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "wifi.connect",
  "params": {
    "ssid": "Guardian WIFI",
    "passphrase": "",
    "security": "none"
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "ssid": "Guardian WIFI",
    "security": "none",
    "signalStrength": -70,
    "frequency": 2.4
  }
}

disconnect

Disconnect the device if connected via WIFI.

function disconnect(): Promise<void>

Promise resolution:

void

Examples

Disconnect

JavaScript:

import { Wifi } from '@firebolt-js/manage-sdk'

Wifi.disconnect()
    .then(result => {
        console.log(result)
    })

Value of result:

null
JSON-RPC:

Request:

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

Response:

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

wps

Connect to WPS

function wps(security?: WPSSecurityPin): Promise<AccessPoint>

Parameters:

Param Type Required Summary
security WPSSecurityPin false  

Promise resolution:

Type Description
AccessPoint Properties of a scanned wifi list item.

Examples

Connect to a WPS Wifi router

JavaScript:

import { Wifi } from '@firebolt-js/manage-sdk'

Wifi.wps("pushButton")
    .then(connectedWifi => {
        console.log(connectedWifi)
    })

Value of connectedWifi:

{
  "ssid": "DND",
  "security": "wpa2Psk",
  "signalStrength": -70,
  "frequency": 2.4
}
JSON-RPC:

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "wifi.wps",
  "params": {
    "security": "pushButton"
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "ssid": "DND",
    "security": "wpa2Psk",
    "signalStrength": -70,
    "frequency": 2.4
  }
}

Schemas

AccessPointList

List of scanned Wifi networks available near the device.

type AccessPointList = {
  list?: AccessPoint[]
}

WifiSecurityMode

Security Mode supported for Wifi

type WifiSecurityMode = 'none' | 'wep64' | 'wep128' | 'wpaPskTkip' | 'wpaPskAes' | 'wpa2PskTkip' | 'wpa2PskAes' | 'wpaEnterpriseTkip' | 'wpaEnterpriseAes' | 'wpa2EnterpriseTkip' | 'wpa2EnterpriseAes' | 'wpa2Psk' | 'wpa2Enterprise' | 'wpa3PskAes' | 'wpa3Sae'

WifiSignalStrength

Strength of Wifi signal, value is negative based on RSSI specification.

type WifiSignalStrength = number

WifiFrequency

Wifi Frequency in Ghz, example 2.4Ghz and 5Ghz.

type WifiFrequency = number

AccessPoint

Properties of a scanned wifi list item.

type AccessPoint = {
  ssid?: string                        // Name of the wifi.
  securityMode?: WifiSecurityMode      // Security Mode supported for Wifi
  signalStrength?: WifiSignalStrength  // Strength of Wifi signal, value is negative based on RSSI specification.
  frequency?: WifiFrequency            // Wifi Frequency in Ghz, example 2.4Ghz and 5Ghz.
}

WPSSecurityPin

Security pin type for WPS(Wifi Protected Setup).

type WPSSecurityPin = 'pushButton' | 'pin' | 'manufacturerPin'

WifiConnectRequest

Request object for the wifi connection.

type WifiConnectRequest = {




}

See also:


Go To Top