Wifi Module


Version Wifi 1.0.0

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'

Overview

A module for providing support for Wifi.

Methods

connect

Connect the device to the specified SSID.

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

Parameters:

Param Type Required Description  
ssid string false    
, passphrase string false  
, security WifiSecurityMode false
values: 'none' \| 'wep64' \| 'wep128' \| 'wpaPskTkip' \| 'wpaPskAes' \| 'wpa2PskTkip' \| 'wpa2PskAes' \| 'wpaEnterpriseTkip' \| 'wpaEnterpriseAes' \| 'wpa2EnterpriseTkip' \| 'wpa2EnterpriseAes' \| 'wpa2Psk' \| 'wpa2Enterprise' \| 'wpa3PskAes' \| 'wpa3Sae'

Promise resolution:

AccessPoint

Capabilities:

Role Capability
uses xrn:firebolt:capability:protocol:wifi

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

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": "DND",
	"security": "wpa2Psk",
	"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

Capabilities:

Role Capability
uses xrn:firebolt:capability:protocol:wifi

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
}

scan

Scan available wifi networks in the location.

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

Parameters:

Param Type Required Description
timeout Timeout false
minumum: 0
maximum: 9999      

Promise resolution:

AccessPointList

Capabilities:

Role Capability
uses xrn:firebolt:capability:protocol:wifi

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

wps

Connect to WPS

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

Parameters:

Param Type Required Description
security WPSSecurityPin false
values: 'pushButton' \| 'pin' \| 'manufacturerPin'

Promise resolution:

AccessPoint

Capabilities:

Role Capability
uses xrn:firebolt:capability:protocol:wifi

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

Types

WifiSecurityMode

Security Mode supported for Wifi

enum WifiSecurityMode {
	NONE = 'none',
	WEP_64 = 'wep64',
	WEP_128 = 'wep128',
	WPA_PSK_TKIP = 'wpaPskTkip',
	WPA_PSK_AES = 'wpaPskAes',
	WPA_2PSK_TKIP = 'wpa2PskTkip',
	WPA_2PSK_AES = 'wpa2PskAes',
	WPA_ENTERPRISE_TKIP = 'wpaEnterpriseTkip',
	WPA_ENTERPRISE_AES = 'wpaEnterpriseAes',
	WPA_2ENTERPRISE_TKIP = 'wpa2EnterpriseTkip',
	WPA_2ENTERPRISE_AES = 'wpa2EnterpriseAes',
	WPA_2PSK = 'wpa2Psk',
	WPA_2ENTERPRISE = 'wpa2Enterprise',
	WPA_3PSK_AES = 'wpa3PskAes',
	WPA_3SAE = 'wpa3Sae'
}


WPSSecurityPin

Security pin type for WPS(Wifi Protected Setup).

enum WPSSecurityPin {
	PUSH_BUTTON = 'pushButton',
	PIN = 'pin',
	MANUFACTURER_PIN = 'manufacturerPin'
}


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

See also:

‘none’ | ‘wep64’ | ‘wep128’ | ‘wpaPskTkip’ | ‘wpaPskAes’ | ‘wpa2PskTkip’ | ‘wpa2PskAes’ | ‘wpaEnterpriseTkip’ | ‘wpaEnterpriseAes’ | ‘wpa2EnterpriseTkip’ | ‘wpa2EnterpriseAes’ | ‘wpa2Psk’ | ‘wpa2Enterprise’ | ‘wpa3PskAes’ | ‘wpa3Sae’ number number


AccessPointList

List of scanned Wifi networks available near the device.

type AccessPointList = {
  list?: AccessPoint[]
}

See also:

AccessPoint