Skip to content

a supervisor-like set of endpoints that enables wifi management under resin containers using a simple REST interface

License

Notifications You must be signed in to change notification settings

balena-io-experimental/balena-wifivisor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[WIP] resin-wifivisor

a supervisor-like set of endpoints that enables wifi management under resin containers

Dependencies

  • connman
  • libdbus-1-dev
  • libglib2.0-dev

on Debian/Ubuntu :

sudo apt-get update && sudo apt-get install connman libdbus-1 libglib2.0-dev -y

Installation

npm i resin-wifivisor --save

Usage

const Wifi = require('resin-wifivisor');

Wifi.init();

Wifi.on('error', function(err) {
    console.error(err)
});

Wifi.on('start', function(port) {
    console.log("wifi manager listening on port " + port);
});

Wifi.on('connect', function(ssid) {
    console.log('connected to ' + ssid);
});

Wifi.on('disconnect', function() {
    console.log("disconnected");
});

Wifi.on('hotspot', function(data) {
    if (data.active) {
        console.log("hotspot enabled with SSID: " + data.ssid + " and passphrase: " + data.psk);
    } else {
        console.log("hotspot disabled");
    }
});

Wifi.on('powered', function(status) {
    if (status) {
        console.log("Wifi enabled");
    } else {
        console.log("Wifi disabled");
    }
});

APIs

  • You can set the port on which to expose the webserver via WIFIVISOR_CONFIG_PORT env-var (defaults to 3000)
  • You can set the connections configuration path via WIFIVISOR_CONFIG_DIR env-var (defaults to /data/wifi/)
Get WiFi state
Endpoint Method Response Description
/v1/wifi/state GET empty 200 OK returns the current state of the Wifi chip

curl -X GET 127.0.0.1:3000/v1/wifi/state

Set WiFi power mode to ON
Endpoint Method Response Description
/v1/wifi/state PUT empty 200 OK powers ON the WiFi chip

curl -X PUT 127.0.0.1:3000/v1/wifi/state

Set WiFi power mode to OFF
Endpoint Method Response Description
/v1/wifi/state DELETE empty 200 OK powers OFF the WiFi chip

curl -X DELETE 127.0.0.1:3000/v1/wifi/state

Scan WiFi
Endpoint Method Response Description
/v1/wifi/ GET obj 200 OK scans for Wifi access points

curl -X GET 127.0.0.1:3000/v1/wifi

Connect
Endpoint Method Response Description
/v1/wifi/<ssid>/<psk> POST obj 200 OK connects to a given Wifi access point with given SSID and PSK

curl -X POST 127.0.0.1:3000/v1/wifi/<ssid>/<psk>

Disconnect
Endpoint Method Response Description
/v1/wifi/ DELETE empty 200 OK disconnects to any current Wifi access point

curl -X DELETE 127.0.0.1:3000/v1/wifi

Hotspot ON
Endpoint Method Response Description
/v1/wifi/hotspot/<ssid>/<psk> POST obj 200 OK or 500 INTERNAL SERVER ERROR enables the Hotspot mode with given SSID and PSK

curl -X POST 127.0.0.1:3000/v1/wifi/hotspot/<ssid>/<psk>

Hotspot OFF
Endpoint Method Response Description
/v1/wifi/hotspot/ DELETE empty 200 OK disables the Hotspot mode

curl -X DELETE 127.0.0.1:3000/v1/wifi/hotspot

Get Configs
Endpoint Method Response Description
/v1/wifi/config/ GET obj 200 OK or 500 INTERNAL SERVER ERROR gets already configured connections

curl -X GET 127.0.0.1:3000/v1/wifi/config

Save config
Endpoint Method Response Description
/v1/wifi/config/<ssid>/<psk> POST empty 200 OK or 500 INTERNAL SERVER ERROR save connection config

curl -X POST 127.0.0.1:3000/v1/wifi/config/<ssid>/<psk>

Delete config
Endpoint Method Response Description
/v1/wifi/config/<ssid> DELETE empty 200 OK or 500 INTERNAL SERVER ERROR delete connection config

curl -X DELETE 127.0.0.1:3000/v1/wifi/config/<ssid>

License

Copyright 2016 Rulemotion Ltd.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

a supervisor-like set of endpoints that enables wifi management under resin containers using a simple REST interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published