@firebolt-js/manage-sdk
Version:
The Firebolt Manage JS SDK
548 lines (409 loc) • 10.2 kB
Markdown
title: Wifi
# Wifi Module
Version Wifi 1.5.0
## Table of Contents
- [Table of Contents](#table-of-contents)
- [Usage](#usage)
- [Overview](#overview)
- [Methods](#methods)
- [connect](#connect)
- [disconnect](#disconnect)
- [scan](#scan)
- [wps](#wps)
- [Types](#types)
- [WifiSecurityMode](#wifisecuritymode)
- [WPSSecurityPin](#wpssecuritypin)
- [WifiSignalStrength](#wifisignalstrength)
- [WifiFrequency](#wififrequency)
- [AccessPoint](#accesspoint)
- [AccessPointList](#accesspointlist)
## Usage
To use the Wifi module, you can import it into your project from the Firebolt SDK:
```javascript
import { Wifi } from '@firebolt-js/manage-sdk'
```
## Overview
A module for providing support for Wifi.
## Methods
### connect
Connect the device to the specified SSID.
```typescript
function connect(
ssid: string,
passphrase: string,
security: WifiSecurityMode,
): Promise<AccessPoint>
```
Parameters:
| Param | Type | Required | Description |
| ------------ | --------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ssid` | `string` | false | |
| `passphrase` | `string` | false | |
| `security` | [`WifiSecurityMode`](#wifisecuritymode) | false | <br/>values: `'none' \| 'wep64' \| 'wep128' \| 'wpaPskTkip' \| 'wpaPskAes' \| 'wpa2PskTkip' \| 'wpa2PskAes' \| 'wpaEnterpriseTkip' \| 'wpaEnterpriseAes' \| 'wpa2EnterpriseTkip' \| 'wpa2EnterpriseAes' \| 'wpa2Psk' \| 'wpa2Enterprise' \| 'wpa3PskAes' \| 'wpa3Sae'` |
Promise resolution:
[AccessPoint](#accesspoint)
Capabilities:
| Role | Capability |
| ---- | ------------------------------------- |
| uses | xrn:firebolt:capability:protocol:wifi |
#### Examples
Connect to a wpa2Psk Wifi with password
JavaScript:
```javascript
import { Wifi } from '@firebolt-js/manage-sdk'
let connectedWifi = await Wifi.connect('DND', 'gargoyle', 'wpa2Psk')
console.log(connectedWifi)
```
Value of `connectedWifi`:
```javascript
{
"ssid": "DND",
"security": "wpa2Psk",
"signalStrength": -70,
"frequency": 2.4
}
```
<details>
<summary>JSON-RPC:</summary>
Request:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "Wifi.connect",
"params": {
"ssid": "DND",
"passphrase": "gargoyle",
"security": "wpa2Psk"
}
}
```
Response:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"ssid": "DND",
"security": "wpa2Psk",
"signalStrength": -70,
"frequency": 2.4
}
}
```
</details>
Connect to a WPA2 PSK Wifi with password
JavaScript:
```javascript
import { Wifi } from '@firebolt-js/manage-sdk'
let connectedWifi = await Wifi.connect('Guardian WIFI', undefined, 'none')
console.log(connectedWifi)
```
Value of `connectedWifi`:
```javascript
{
"ssid": "DND",
"security": "wpa2Psk",
"signalStrength": -70,
"frequency": 2.4
}
```
<details>
<summary>JSON-RPC:</summary>
Request:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "Wifi.connect",
"params": {
"ssid": "Guardian WIFI",
"passphrase": "",
"security": "none"
}
}
```
Response:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"ssid": "Guardian WIFI",
"security": "none",
"signalStrength": -70,
"frequency": 2.4
}
}
```
</details>
### disconnect
Disconnect the device if connected via WIFI.
```typescript
function disconnect(): Promise<void>
```
Promise resolution:
Capabilities:
| Role | Capability |
| ---- | ------------------------------------- |
| uses | xrn:firebolt:capability:protocol:wifi |
#### Examples
Disconnect
JavaScript:
```javascript
import { Wifi } from '@firebolt-js/manage-sdk'
let result = await Wifi.disconnect()
console.log(result)
```
Value of `result`:
```javascript
null
```
<details>
<summary>JSON-RPC:</summary>
Request:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "Wifi.disconnect",
"params": {}
}
```
Response:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": null
}
```
</details>
### scan
Scan available wifi networks in the location.
```typescript
function scan(timeout: Timeout): Promise<AccessPointList>
```
Parameters:
| Param | Type | Required | Description |
| ------------- | -------------------------------------- | -------- | --------------- |
| `timeout` | [`Timeout`](../Types/schemas/#Timeout) | false | <br/>minumum: 0 |
| maximum: 9999 |
Promise resolution:
[AccessPointList](#accesspointlist)
Capabilities:
| Role | Capability |
| ---- | ------------------------------------- |
| uses | xrn:firebolt:capability:protocol:wifi |
#### Examples
Successful Wifi List
JavaScript:
```javascript
import { Wifi } from '@firebolt-js/manage-sdk'
let list = await Wifi.scan(30)
console.log(list)
```
Value of `list`:
```javascript
{
"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
}
]
}
```
<details>
<summary>JSON-RPC:</summary>
Request:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "Wifi.scan",
"params": {
"timeout": 30
}
}
```
Response:
```json
{
"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
}
]
}
}
```
</details>
### wps
Connect to WPS
```typescript
function wps(security: WPSSecurityPin): Promise<AccessPoint>
```
Parameters:
| Param | Type | Required | Description |
| ---------- | ----------------------------------- | -------- | --------------------------------------------------------- |
| `security` | [`WPSSecurityPin`](#wpssecuritypin) | false | <br/>values: `'pushButton' \| 'pin' \| 'manufacturerPin'` |
Promise resolution:
[AccessPoint](#accesspoint)
Capabilities:
| Role | Capability |
| ---- | ------------------------------------- |
| uses | xrn:firebolt:capability:protocol:wifi |
#### Examples
Connect to a WPS Wifi router
JavaScript:
```javascript
import { Wifi } from '@firebolt-js/manage-sdk'
let connectedWifi = await Wifi.wps('pushButton')
console.log(connectedWifi)
```
Value of `connectedWifi`:
```javascript
{
"ssid": "DND",
"security": "wpa2Psk",
"signalStrength": -70,
"frequency": 2.4
}
```
<details>
<summary>JSON-RPC:</summary>
Request:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "Wifi.wps",
"params": {
"security": "pushButton"
}
}
```
Response:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"ssid": "DND",
"security": "wpa2Psk",
"signalStrength": -70,
"frequency": 2.4
}
}
```
</details>
## Types
### WifiSecurityMode
Security Mode supported for Wifi
```typescript
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).
```typescript
WPSSecurityPin: {
PUSH_BUTTON: 'pushButton',
PIN: 'pin',
MANUFACTURER_PIN: 'manufacturerPin',
},
```
### WifiSignalStrength
Strength of Wifi signal, value is negative based on RSSI specification.
```typescript
type WifiSignalStrength = number
```
### WifiFrequency
Wifi Frequency in Ghz, example 2.4Ghz and 5Ghz.
```typescript
type WifiFrequency = number
```
### AccessPoint
Properties of a scanned wifi list item.
```typescript
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:
[WifiSecurityMode](#wifisecuritymode)
[WifiSignalStrength](#wifisignalstrength)
[WifiFrequency](#wififrequency)
### AccessPointList
List of scanned Wifi networks available near the device.
```typescript
type AccessPointList = {
list?: AccessPoint[] // Properties of a scanned wifi list item.
}
```
See also:
[AccessPoint](#accesspoint)