node-unifiapi
v0.0.54
Published
Provides API to manage Ubiquiti Unifi Controller, ver 4 and 5
Downloads
333
Readme
node-unifiapi
UniFi API ported to Node.JS
This library is a rewrite of the PHP based UniFi-API-Browser written in JavaScript for Node-JS.
It is mimicking the UniFi-API-Browser API calls (the same commands the same effects) for Ubiquiti Unifi Controller versions 4 and 5 with addition of few more generic calls.
Major features
- Implements the major (if not all) calls to the REST API of the Ubiquiti for Unifi Controller
- Supports WebRTC (over the Ubiquiti Unifi Cloud) protocol. If you have your devices registerred in the Unifi Cloud you can access them and execute the same REST API calls over WebRTC
- Supports SSH access to the devices that support it (mostly UAP) over WebRTC
- Supports Plug-in replacement for the WebRTC module (tested with electron-webrtc) in case wrtc doesn't work for you for some reason
Warning
Quite unstable mostly due to the instability of the WebRTC implementation in Node.JS. Also highly incompleted and untested. Any help appreciated!
Installation
To install run:
npm install node-unifiapi --save
The installation DOES NOT depend on the Node's wrtc module anymore. If you want to use the WebRTC functionality (Unifi cloudapi and SSH tunnels to device) you have to install webrtc module, and if this module is not node-webrtc you have to explicitly specify it according to the documentation.
To install node-webrtc do:
npm install node-webrtc --save
The install requirements for node-webrtc are visible here node-webrtc. Please consult with the installation requirements of this module in order to be able to install it.
XOpenDisplay Error
A frequent error caused by node-webrtc module is the one defined in issue #281
node: symbol lookup error: [local-path]/build/wrtc/v0.0.61/Release/node-v47-linux-x64/wrtc.node: undefined symbol: XOpenDisplay
It happens mostly on Linux, almost exquisively if the Linux have X11 subsystem, although it is not caused directly by it (but a bad linking). The easiest method to avoid it is to use non desktop (non X11 based) Linux distribution, like Ubuntu Server. We all hope that in version 0.0.62 of the node-webrtc module this issue will be fixed.
Segmentation errors
Again, the node-wrtc module is quite unstable sometimes. I find it best working on OSX or Linux (Linux Server, without X11 libraries) with the prebuilt binary images (which for the moment requires node version 6.9 maximum for Linux). The problem with this instability seems to be well known to the wrtc community but I cannot predict when it will be fixed.
However, the unifiapi module uses the standart webrtc api, so it could work with any webrtc module with the standard api.
Following is an example with electron-webrtc module:
npm install electron-webrtc
And then a test (example) code:
let cloud = require('node-unifiapi/cloudapi');
let wrtc = require('electron-webrtc')({ headless: true });
let r = cloud({ device-id: 'xxx-xxx-xx-xx-xx-xx', username: 'myuser', password: 'mypass', webrtc: wrtc, waiter: 1000 }).api;
r.stat_sessions().then(data => console.log('Success', data).catch(err => console.log('Error', err);
The waiter property sets delay between every command sent to the webrtc in ms. I found electron-webrtc working better, if there is at least 500ms delay between the calls.
Test from CLI
There is a sister project available here https://github.com/delian/unificli which provides CLI tool where all (or most) of the calls of this API are exposed as REPL CLI commands one could use to test.
Usage
All the API are Promises
Direct access to Ubiquiti Unifi Controller
If you have a direct access to Ubiquiti Unifi Controller, you could use the following API:
let unifi = require('node-unifiapi');
let r = unifi({
baseUrl: 'https://127.0.0.1:8443', // The URL of the Unifi Controller
username: 'ubnt',
password: 'ubnt',
// debug: true, // More debug of the API (uses the debug module)
// debugNet: true // Debug of the network requests (uses request module)
});
r.stat_sessions()
.then((data) => {
console.log('Stat sessions', data);
return r.stat_allusers();
})
.then((data) => {
console.log('AP data', data);
})
.catch((err) => {
console.log('Error', err);
})
Access via Unifi Cloud and WebRTC
If you have to access the Unifi Controller if it is behind NAT and you need to use WebRTC to access it or known only via Unifi Cloud:
let cloud = require('node-unifiapi/cloudapi');
let r = cloud({
deviceId: '801bb78e12c80000000001a22aea000000000203c905000000066660aaaa', // The cloud id of the device
username: 'clouduser',
password: 'cloudpass',
// debug: true, // More debug of the API (uses the debug module)
// debugNet: true // Debug of the network requests
});
r.api.stat_sessions()
.then((data) => {
console.log('Stat sessions', data);
return r.api.stat_allusers();
})
.then((data) => {
console.log('AP data', data);
})
.catch((err) => {
console.log('Error', err);
})
Be careful - when we use the cloud access all the Unifi calls are available under the .api property, to not confuse with the API calls that are related to the cloud management itself.
Rebuild Readme.md
If you want to modify the README.md file for any reason (added jsdoc comment somewhere or have done change to README.hbs) please run
npm run readme
API
Functions
UnifiAPI(options) ⇒
The main class and the initialization of the Unifi Access
Kind: global function
Returns: this
| Param | Type | Description | | --- | --- | --- | | options | object | the options during initialization | | options.baseUrl | string | the URL where the Unifi controller is. Default https://127.0.0.1:8443 | | options.username | string | default username | | options.password | string | default password | | options.site | string | default site. Default is "default" | | options.debug | boolean | if the debug log is enabled | | options.debugNet | boolean | if the debug of the request module is enabled |
Example
let UnifiAPI = require('node-unifiapi');
let unifi = UnifiAPI({
baseUrl: 'https://127.0.0.1:8443', // The URL of the Unifi Controller
username: 'ubnt',
password: 'ubnt',
// debug: true, // More debug of the API (uses the debug module)
// debugNet: true // Debug of the network requests (uses request module)
});
- UnifiAPI(options) ⇒
- .debugging(enable) ⇒ undefined
- .netsite(url, jsonParams, headers, method, site) ⇒ Promise
- .login(username, password) ⇒ Promise
- .logout()
- .authorize_guest(mac, minutes, up, down, mbytes, apmac, site) ⇒ Promise
- .unauthorize_guest(mac, site) ⇒ Promise
- .kick_sta(mac, site) ⇒ Promise
- .terminate_guest(id, site) ⇒ Promise
- .block_sta(mac, site) ⇒ Promise
- .unblock_sta(mac, site) ⇒ Promise
- .set_sta_note(user, note, site) ⇒ Promise
- .set_sta_name(user, name, site) ⇒ Promise
- .stat_sessions(start, end, type, site) ⇒ Promise
- .stat_daily_site(start, end, attrs, site) ⇒ Promise
- .stat_hourly_site(start, end, attrs, site) ⇒ Promise
- .stat_hourly_ap(start, end, attrs, site) ⇒ Promise
- .stat_sta_sessions_latest(mac, limit, sort, site) ⇒ Promise
- .stat_auths(start, end, site) ⇒ Promise
- .stat_allusers(historyhours, site) ⇒ Promise
- .list_guests(historyhours, site) ⇒ Promise
- .list_guests2(historyhours, site) ⇒ Promise
- .list_clients(mac, site) ⇒ Promise
- .list_some_clients(macs, ap, site) ⇒ Promise
- .stat_client(mac, site) ⇒ Promise
- .list_usergroup(site) ⇒ Promise
- .set_usergroup(userid, groupid, site) ⇒ Promise
- .list_health(site) ⇒ Promise
- .list_dashboard(site) ⇒ Promise
- .list_users(site) ⇒ Promise
- .list_aps(mac, site) ⇒ Promise
- .list_rogueaps(within, site) ⇒ Promise
- .list_sites() ⇒ Promise
- .stat_sites() ⇒ Promise
- .add_site(name, description, site) ⇒ Promise
- .remove_site(name, site) ⇒ Promise
- .list_wlan_groups(site) ⇒ Promise
- .stat_sysinfo(site) ⇒ Promise
- .list_self(site) ⇒ Promise
- .list_networkconf(site) ⇒ Promise
- .stat_voucher(createtime, site) ⇒ Promise
- .stat_payment(within, site) ⇒ Promise
- .create_hotspot(name, password, note, site) ⇒ Promise
- .list_hotspot(site) ⇒ Promise
- .create_voucher(count, minutes, quota, note, up, down, mbytes, site) ⇒ Promise
- .revoke_voucher(voucher_id, site) ⇒ Promise
- .list_portforwarding(site) ⇒ Promise
- .list_dynamicdns(site) ⇒ Promise
- .list_portconf(site) ⇒ Promise
- .list_extension(site) ⇒ Promise
- .list_settings(site) ⇒ Promise
- .restart_ap(mac, site) ⇒ Promise
- .disable_ap(ap_id, disable, site) ⇒ Promise
- .enable_ap(ap_id, disable, site) ⇒ Promise
- .set_locate_ap(mac, site) ⇒ Promise
- .unset_locate_ap(mac, site) ⇒ Promise
- .site_ledson(site) ⇒ Promise
- .site_ledsoff(site) ⇒ Promise
- .set_ap_radiosettings(ap_id, radio, channel, ht, tx_power_mode, tx_power, site) ⇒ Promise
- .get_settings_by_key(key, site) ⇒ Promise
- .set_settings(key, obj, site) ⇒ Promise
- .set_guest_access(obj, guest_id, site_id, site) ⇒ Promise
- .set_guestlogin_settings(portal_enabled, portal_customized, redirect_enabled, redirect_url, x_password, site) ⇒ Promise
- .rename_ap(ap_id, ap_name, site) ⇒ Promise
- .set_wlansettings(wlan_id, x_password, name, site) ⇒ Promise
- .list_events(site) ⇒ Promise
- .list_wlanconf(site) ⇒ Promise
- .get_wlanconf(site) ⇒ Promise
- .list_alarms(site) ⇒ Promise
- .set_ap_led(ap_id, led_override, site) ⇒ Promise
- .set_ap_name(ap_id, name, site) ⇒ Promise
- .set_ap_wireless(ap_id, radio, channel, ht, min_rssi, min_rssi_enabled, antenna_gain, tx_power_mode, site) ⇒ Promise
- .status(site) ⇒ Promise
- .set_ap_network(ap_id, type, ip, netmask, gateway, dns1, dns2, site) ⇒ Promise
- .request_spectrumscan(mac, site) ⇒ Promise
- .set_site_descr(description, site) ⇒ Promise
- .set_site_settings(gen_id, site_id, advanced, alerts, auto_upgrade, key, led_enabled, x_ssh_username, x_ssh_password, site) ⇒ Promise
- .add_hotspot2(name, network_access_internet, network_type, venue_group, venue_type, site) ⇒ Promise
- .list_hotspot2(site) ⇒ Promise
- .delete_hotspot2(site) ⇒ Promise
- .set_hotspot2(hs_id, name, network_access_internet, network_type, venue_group, venue_type, site) ⇒ Promise
- .remove_wlanconf(id, site) ⇒ Promise
- .sdn_register(username, password, site) ⇒ Promise
- .sdn_unregister(site) ⇒ Promise
- .sdn_stat(site) ⇒ Promise
- .sdn_onoff(enabled, site_id, site) ⇒ Promise
- .extend_voucher(voucher_id, site) ⇒ Promise
unifiAPI.debugging(enable) ⇒ undefined
Enable or disable the debug of the module
Kind: instance method of UnifiAPI
| Param | Type | Description | | --- | --- | --- | | enable | boolean | Enable or disable the debugging |
unifiAPI.netsite(url, jsonParams, headers, method, site) ⇒ Promise
Generic network operation, executing Ubiquiti command under /api/s/{site}/... rest api
Kind: instance method of UnifiAPI
| Param | Type | Description | | --- | --- | --- | | url | string | The right part of the URL (/api/s/{site}/ is automatically added) | | jsonParams | object | optional. Default undefined. If it is defined and it is object, those will be the JSON POST attributes sent to the URL and the the default method is changed from GET to POST | | headers | object | optional. Default {}. HTTP headers that we require to be sent in the request | | method | object | optional. Default undefined. The HTTP request method. If undefined, then it is automatic. If no jsonParams specified, it will be GET. If jsonParams are specified it will be POST | | site | string | optional. The {site} atribute of the request. If not specified, it is taken from the UnifiAPI init options, where if it is not specified, it is "default" |
Example
unifi.netsite('/cmd/stamgr', { cmd: 'authorize-guest', mac: '00:01:02:03:04:05', minutes: 60 }, {}, 'POST', 'default')
.then(data => console.log('Success', data))
.catch(error => console.log('Error', error));
unifiAPI.login(username, password) ⇒ Promise
Explicit login to the controller. It is not necessary, as every other method calls implicid login (with the default username and password) before execution
Kind: instance method of UnifiAPI
Returns: Promise - success or failure
| Param | Type | Description | | --- | --- | --- | | username | string | The username | | password | string | The password |
Example
unifi.login(username, password)
.then(data => console.log('success', data))
.catch(err => console.log('Error', err))
unifiAPI.logout()
Logout of the controller
Kind: instance method of UnifiAPI
Example
unifi.logout()
.then(() => console.log('Success'))
.catch(err => console.log('Error', err))
unifiAPI.authorize_guest(mac, minutes, up, down, mbytes, apmac, site) ⇒ Promise
Authorize guest by a MAC address
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | mac address of the guest - mandatory | | minutes | string | minutes for the authorization - optional, default 60 min | | up | string | upstream bandwidth in Kbps. Default no limit | | down | string | downstream bandwidth in Kbps. Default no _limit | | mbytes | string | download limit in Mbytes. Default no limit | | apmac | string | to which mac address the authorization belongs. Default any | | site | string | to which site (Ubiquiti) the command will be applied if it is different than the default |
Example
unifi.authorize_guest('01:02:aa:bb:cc')
.then(data => console.log('Successful authorization'))
.catch(err => console.log('Error', err))
unifiAPI.unauthorize_guest(mac, site) ⇒ Promise
De-authorize guest by a MAC address
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | the mac address | | site | site | Ubiquiti site, if different from default - optional |
Example
unifi.unauthorize_guest('00:01:02:03:aa:bb')
.then(done => console.log('Success', done))
.catch(err => console.log('Error', err))
unifiAPI.kick_sta(mac, site) ⇒ Promise
Kick a client (station) of the network. This will disconnect a wireless user if it is connected
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | Mac address | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.kick_sta('00:00:11:22:33:44')
.then(done => console.log('Success', done))
.catch(err => console.log('Error', err))
unifiAPI.terminate_guest(id, site) ⇒ Promise
Terminate access of a Guest (logged in via Guest Authorization). It kicks it out of the wireless and authroization
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | id | string | the ID of the guest that have to be kicked out | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.terminate_guest('aa01af0133d334d77d')
.this(done => console.log('Success', done))
.catch(err => console.log('Error', err))
unifiAPI.block_sta(mac, site) ⇒ Promise
Block station of the network
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | Mac address | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.block_sta('00:01:02:03:04:05')
.then(done => console.log('Success',done))
.catch(err => console.log('Error', err))
unifiAPI.unblock_sta(mac, site) ⇒ Promise
Unblock station of the network
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | Mac address | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.block_sta('00:01:02:03:04:05')
.then(done => console.log('Success',done))
.catch(err => console.log('Error', err))
unifiAPI.set_sta_note(user, note, site) ⇒ Promise
Set or remove Note to a station
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | user | string | User ID | | note | string | Note | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.set_sta_note('aabbaa0102aa03aa3322','Test note')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
Example
unifi.set_sta_note('aabbaa0102aa03aa3322','') // remove note
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_sta_name(user, name, site) ⇒ Promise
Set or remove Name to a station
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | user | string | User ID | | name | string | Name | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.set_sta_name('aabbaa0102aa03aa3322','Central Access Point')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
Example
unifi.set_sta_name('aabbaa0102aa03aa3322','') // remove name
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_sessions(start, end, type, site) ⇒ Promise
List client sessions
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | start | number | Start time in Unix Timestamp - Optional. Default 7 days ago | | end | number | End time in Unix timestamp - Optional. Default - now | | type | string | Sessions type. Optional. Default all | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_sessions()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_daily_site(start, end, attrs, site) ⇒ Promise
List daily site statistics
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | start | number | Start time in Unix Timestamp - Optional. Default 7 days ago | | end | number | End time in Unix timestamp - Optional. Default - now | | attrs | array | What attributes we are quering for. Optional. Default [ 'bytes', 'wan-tx_bytes', 'wan-rx_bytes', 'wlan_bytes', 'num_sta', 'lan-num_sta', 'wlan-num_sta', 'time' ] | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_daily_site()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_hourly_site(start, end, attrs, site) ⇒ Promise
List hourly site statistics
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | start | number | Start time in Unix Timestamp - Optional. Default 7 days ago | | end | number | End time in Unix timestamp - Optional. Default - now | | attrs | array | What attributes we are quering for. Optional. Default [ 'bytes', 'wan-tx_bytes', 'wan-rx_bytes', 'wlan_bytes', 'num_sta', 'lan-num_sta', 'wlan-num_sta', 'time' ] | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_hourly_site()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_hourly_ap(start, end, attrs, site) ⇒ Promise
List hourly site statistics for ap
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | start | number | Start time in Unix Timestamp - Optional. Default 7 days ago | | end | number | End time in Unix timestamp - Optional. Default - now | | attrs | array | What attributes we are quering for. Optional. Default [ 'bytes', 'num_sta', 'time' ] | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_hourly_ap()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_sta_sessions_latest(mac, limit, sort, site) ⇒ Promise
Last station sessions
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | Mac address | | limit | number | How many sessions. Optional. Default 5 | | sort | string | Sorting. Optional. Default Ascending (asc) | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_sta_sessions_latest('00:01:02:03:04:05', 10)
.then(done => console.log('Success', done))
.catch(err => console.log('Error',err))
unifiAPI.stat_auths(start, end, site) ⇒ Promise
List authorizations
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | start | number | Start time in Unix Timestamp - Optional. Default 7 days ago | | end | number | End time in Unix timestamp - Optional. Default - now | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_auths()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_allusers(historyhours, site) ⇒ Promise
List all users
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | historyhours | number | How many hours back to query. Optional. Default 8670 | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_allusers()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_guests(historyhours, site) ⇒ Promise
List of guests (authorized via the guest portal)
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | historyhours | number | How many hours back to query. Optional. Default 8670 | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_guests()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_guests2(historyhours, site) ⇒ Promise
List of guests (authorized via the guest portal) but with modern internal api
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | historyhours | number | How many hours back to query. Optional. Default 8670 | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_guests2()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_clients(mac, site) ⇒ Promise
List of (all) clients per station
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | Mac address | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_clients()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_some_clients(macs, ap, site) ⇒ Promise
List of group of clients per station
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | macs | string | String mac or array of mac addresses as strings, to get information about them | | ap | string | Station man address | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_some_clients()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_client(mac, site) ⇒ Promise
Statistics of (all) clients per station
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | Mac address | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.stat_client()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_usergroup(site) ⇒ Promise
List of the usergroups
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_usergroup()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_usergroup(userid, groupid, site) ⇒ Promise
Add user to a group
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | userid | string | ID of the user | | groupid | string | ID of the group | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.set_usergroup('11aa22bb33cc44dd55ee66ff', '112233445566778899aabb')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_health(site) ⇒ Promise
List health
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_health()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_dashboard(site) ⇒ Promise
List dashboard
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_dashboard()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_users(site) ⇒ Promise
List users
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_users()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_aps(mac, site) ⇒ Promise
List APs
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | AP mac/id, Optional | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_aps()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_rogueaps(within, site) ⇒ Promise
List Rogue APs
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | within | number | For how many hours back. Optional. Default 24h | | site | string | Ubiquiti site, if different from default - optional |
Example
unifi.list_rogueaps()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_sites() ⇒ Promise
List sites
Kind: instance method of UnifiAPI
Returns: Promise - Promise
Example
unifi.list_sites()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_sites() ⇒ Promise
Sites stats
Kind: instance method of UnifiAPI
Returns: Promise - Promise
Example
unifi.stat_sites()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.add_site(name, description, site) ⇒ Promise
Add new site
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | name | string | name | | description | string | description - optional | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.add_site('mysite','Experimental site')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.remove_site(name, site) ⇒ Promise
Remove site
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | name | string | name | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.remove_site('mysite')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_wlan_groups(site) ⇒ Promise
List WLANGroups
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_wlan_groups()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_sysinfo(site) ⇒ Promise
Stat Sysinfo
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.stat_sysinfo()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_self(site) ⇒ Promise
Get information aboult self (username, etc)
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_self()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_networkconf(site) ⇒ Promise
Get information aboult the network configuration
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_networkconf()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_voucher(createtime, site) ⇒ Promise
Get accounting / status of the vouchers
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | createtime | number | Unixtimestamp since when we return information about the vouchers. Optional. Default any | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.stat_voucher()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.stat_payment(within, site) ⇒ Promise
Get accounting / status of the payments
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | within | number | how many hours back we query. Optional. Default any | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.stat_payment()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.create_hotspot(name, password, note, site) ⇒ Promise
Create HotSpot (version 1)
Kind: instance method of UnifiAPI
Returns: Promise - Promise
Todo
- [ ] Check if the URL of the rest service is correct
- [ ] Test that it is working
| Param | Type | Description | | --- | --- | --- | | name | string | name | | password | string | password | | note | string | Note (optional) | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.create_hotspot('myhotspot', 'password', 'note')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_hotspot(site) ⇒ Promise
List all of the hotspots (v1)
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_hotspot()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.create_voucher(count, minutes, quota, note, up, down, mbytes, site) ⇒ Promise
Create vouchers. Generate a set of vouchers
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | count | number | how many vouchers to generate. Optional. default is 1 | | minutes | number | how long the voucher may be active after activation in minutes. Optional. default is 60 minutes | | quota | number | how many times a user may reuse (login with) this voucher. Default 0 = unlimited. 1 means only once. 2 means two times and so on | | note | string | the note of the voucher. Optional | | up | number | Upstream bandwidth rate limit in Kbits. Optional. Default - no limit | | down | number | Downstream bandwidth rate limit in Kbits. Optional. Default - no limit | | mbytes | number | Limit of the maximum download traffic in Mbytes. Optional. Default - no limit | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.create_voucher(10, 2880, 1, 'Test vouchers', 1000, 2000, 250)
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.revoke_voucher(voucher_id, site) ⇒ Promise
Revoke Voucher. Voucher revoking is the same as deleting the voucher. In most of the cases the authorized user is kicked out of the network too
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | voucher_id | string | description | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.revoke_voucher('9912982aaff182728a0f03')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_portforwarding(site) ⇒ Promise
List port forwarding configuration
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_portforwarding()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_dynamicdns(site) ⇒ Promise
List dynamic dns configuration
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_dynamicdns()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_portconf(site) ⇒ Promise
List network port configuration
Kind: instance method of UnifiAPI
Returns: Promise - Promise
Todo
- [ ] Test it
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_portconf()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_extension(site) ⇒ Promise
List extensions
Kind: instance method of UnifiAPI
Returns: Promise - Promise
Todo
- [ ] Learn more what exactly is this
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_extension()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_settings(site) ⇒ Promise
Get array with all the settings refered by settings key
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.list_settings()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.restart_ap(mac, site) ⇒ Promise
Restart Wireless Access Point
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | mac address of the AP | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.restart_ap('00:01:02:03:aa:04')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.disable_ap(ap_id, disable, site) ⇒ Promise
Disable Wireless Access Point
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | The internal ID of the AP | | disable | boolean | Shall we disable it. Optional. Default true. If false, the AP is enabled | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.disable_ap('001fa98a00a22328123')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.enable_ap(ap_id, disable, site) ⇒ Promise
Enable Wireless Access Point
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | The internal ID of the AP | | disable | boolean | Shall we disable it. Optional. Default true. If false, the AP is enabled | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.enable_ap('001fa98a00a22328123')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_locate_ap(mac, site) ⇒ Promise
Locate Wireless Access Point. The Access Point will start blinking
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | mac of the AP | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.set_locate_ap('00:01:aa:03:04:05')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.unset_locate_ap(mac, site) ⇒ Promise
Turn off Locate Wireless Access Point. The Access Point will stop blinking
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | mac | string | mac of the AP | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.unset_locate_ap('00:01:aa:03:04:05')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.site_ledson(site) ⇒ Promise
All devices in the site group will start blinking
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.site_ledson()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.site_ledsoff(site) ⇒ Promise
All devices in the site group will stop blinking
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.site_ledsoff()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_ap_radiosettings(ap_id, radio, channel, ht, tx_power_mode, tx_power, site) ⇒ Promise
Change AP wireless settings
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | internal id of the AP | | radio | string | The radio type. Supports ng or ac. Default ng. Optional | | channel | number | Wireless channel. Optional. Default 1. Could be string 'auto' | | ht | number | HT width in MHz. 20, 40, 80, 160. Optional. Default 20 | | tx_power_mode | number | TX Power Mode. Optional. Default 0 | | tx_power | number | TX Power. Optional. Default 0 | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.set_ap_radiosettings('aa0101023faabbaacc0c0', 'ng', 3, 20)
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.get_settings_by_key(key, site) ⇒ Promise
Retrieve settings by a specific settings key. Only elements with this settings key will be returned in the array. Usually 1 or 0 Typical keys are mgmt, snmp, porta, locale, rsyslogd, auto_speedtest, country, connectivity
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | key | string | key | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.get_settings_by_key('mgmt')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_settings(key, obj, site) ⇒ Promise
Set settings by key modifies properties of the settings, defined by key
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | key | string | key | | obj | object | object of properties that overwrite the original values | | site | string | Ubiquiti site to query, if different from default - optional |
Example
unifi.set_settings_by_key('mgmt', { auto_upgrade: true })
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_guest_access(obj, guest_id, site_id, site) ⇒ Promise
Set Guest Settings and Guest Access Portal are created with this method
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | obj | object | Object of properties that modify the original values | | obj.auth | string | Optional. Type of authentication. hotspot, radius, none, .... Default hotspot | | obj.expire | string | Optional. How long the authentication is valid in minutes. Default 480 (8h) | | obj.facebook_enabled | boolean | Optional. Allow authentication with facebook. Default false | | obj.google_enabled | boolean | Optional. Allow authentication with google+. Default false | | obj.payment | boolean | Optional. Allow payments for authentication. Default false | | obj.portal_customized | boolean | Optional. Customize the auth portal. Default false | | obj.portal_enabled | boolean | Optional. Enable the portal. Default true | | obj.redirect_enabled | boolean | Optional. Redirect after authentication. Default false | | obj.redirect_url | string | Optional. Redirect URL after successful authentication. Default empty | | obj.voucher_enabled | boolean | Optional. If voucher authentication is enabled. Default false | | guest_id | string | From the get_settings, the ID of the guest settings | | site_id | string | The ID of the current site | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_guest_access({ auth: 'hotspot', payment_enabled: true }, 'aabbaa01010203','ccffee0102030303')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_guestlogin_settings(portal_enabled, portal_customized, redirect_enabled, redirect_url, x_password, site) ⇒ Promise
Set Guest Login Settings (simplified version)
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | portal_enabled | boolean | If the portal is enabled. Optional. Default true | | portal_customized | boolean | If the portal is customized. Optional. Default true | | redirect_enabled | boolean | If the redirection is enabled. Optional. Default false | | redirect_url | string | The url for redirection. Optional. Default '' | | x_password | string | Password for the portal. Optional. Default '' | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_guestlogin_settings(true, true, true, 'http://news.com')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.rename_ap(ap_id, ap_name, site) ⇒ Promise
Rename Access Point
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | Id of the AP | | ap_name | string | New name of the AP | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.rename_ap('ccffee0102030303','My Access Point')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_wlansettings(wlan_id, x_password, name, site) ⇒ Promise
Set WLAN Settings
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | wlan_id | strings | ID of the Wlan | | x_password | string | Password of the WLAN | | name | string | Name of the WLAN | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_wlansettings('ccffee0102030303', 'guest', 'GuestWLAN')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_events(site) ⇒ Promise
List the Events
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.list_events()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_wlanconf(site) ⇒ Promise
Get WLAN Config. Respond with Array of Wlan configurations
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.list_wlanconf()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.get_wlanconf(site) ⇒ Promise
Get WLAN Config. Second REST option. Respond with Array of Wlan configurations
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.get_wlanconf()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.list_alarms(site) ⇒ Promise
List the Alarms
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.list_alarms()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_ap_led(ap_id, led_override, site) ⇒ Promise
Set the access point LED
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | AP ID | | led_override | string | Do we follow the standard LED config. Options default and overwrite | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_ap_led('12312312312','default')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_ap_name(ap_id, name, site) ⇒ Promise
Change the name of an Access Point
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | the ID of the AP | | name | string | the new name | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_ap_name('12312312312','new ap')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_ap_wireless(ap_id, radio, channel, ht, min_rssi, min_rssi_enabled, antenna_gain, tx_power_mode, site) ⇒ Promise
Set wireless properties per AP
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | the ID of the AP | | radio | string | radio type. ng/ac/bg. Optional. Default ng | | channel | number | The channel number or auto. Optional. Default auto. | | ht | number | channel width. 20/40/80/160. Optional. Default 20. | | min_rssi | number | Minimal RSSI accepted in dbi. Optional. Default -94 | | min_rssi_enabled | boolean | If enabled, drops users bellow that rssi valur. Optional. Default false | | antenna_gain | number | The antenna gain. Optional. Default 6 dbi | | tx_power_mode | string | TX Power Mode. Optional. Default auto | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_ap_wireless('12312312312','ng', 3)
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.status(site) ⇒ Promise
Check status
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.status()
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))
unifiAPI.set_ap_network(ap_id, type, ip, netmask, gateway, dns1, dns2, site) ⇒ Promise
Configure the network settings of AP/device
Kind: instance method of UnifiAPI
Returns: Promise - Promise
| Param | Type | Description | | --- | --- | --- | | ap_id | string | ID of the AP | | type | string | static or dhcp. Optional. Default dhcp | | ip | string | IP address. Optional | | netmask | string | netmask. Optional | | gateway | string | gateway. Optional | | dns1 | string | dns. Optional | | dns2 | string | dns. Optional | | site | string | Ubiquiti site to query, if different from default - optonal |
Example
unifi.set_ap_network('00:01:02:03:04:05', 'dhcp')
.then(done => console.log('Success',done))
.catch(err => console.log('Error',err))