Compare commits

...

5 Commits

Author SHA1 Message Date
malle-pietje
bf3446bba0 API client class v1.1.64
- added information to several docblocks
- changed handling of request headers, added private property for this
- applied changes for improved use of require_once in the README and examples
- added `list_sites()` example
- *potential breaking changes:*
    renamed `get_request_type()` and `set_request_type()` functions/methods to `get_request_method()` and `set_request_method()` respectively
2021-01-21 10:59:27 +01:00
malle-pietje
a4998de3a9 API client class v1.1.63
- changed references to *UbiOS* back to *UniFi OS*
- removed capitalization from all header strings (per RFC, header fields are case-insensitive: https://tools.ietf.org/html/rfc7230#section-3.2)
- removed charset parameter from headers (not required per RFC)
- added x-csrf-token header to all requests except GET when talking to UniFi OS-based controllers, thanks go to @paciks for raising #86
2021-01-06 17:03:21 +01:00
malle-pietje
c82481a28a API client class v1.1.62
- added several monthly stats methods: `stat_monthly_gateway()`, `stat_monthly_site()`, `stat_monthly_aps()`, `stat_monthly_user()`, thanks go to @Roel Janssens for spotting these MongoDB collections
- test for `object` or `resource` in `get_curl_resource()`, closes PR #82 submitted by @banakito
- applied change to comments in `example/modify_smartpower_pdu_outlet.php` based on a suggestion by @thesohoguy
- removed unnecessary variable from `list_apgroups()`, thanks go to Stephen Davies for reporting
- added an optional parameter $ap_group_ids to the `create_wlan()` function/method for UniFi controller versions 6.0.X and higher, thanks go to Stephen Davies for contributing
2020-12-10 14:52:39 +01:00
malle-pietje
2c743563f8 API client class v1.1.61
- minor improvements of comments contents
- fixed naming error in comments for list_devices()
- updated supported controller versions in main README
- change variable names used from MBytes to megabytes for improved consistency
2020-11-26 13:19:53 +01:00
malle-pietje
32252e56d7 API client class v1.1.60
- minor syntax improvements based on Scrutinizer CI feedback
- added support for PATCH requests (for future use)
- completed updating method/function comments to PHPDoc format (PSR-5)
2020-11-12 11:09:37 +01:00
33 changed files with 1178 additions and 916 deletions

4
.gitignore vendored
View File

@@ -5,5 +5,9 @@
/vendor/ /vendor/
/composer.lock /composer.lock
# ignore phpdoc files
/build
.phpdoc-md
# ignore XML files # ignore XML files
*.xml *.xml

View File

@@ -1,6 +1,6 @@
## UniFi Controller API client class ## UniFi Controller API client class
A PHP class that provides access to Ubiquiti's [**UniFi Network Controller**](https://unifi-network.ui.com/) API, versions 4.X.X and 5.X.X of the UniFi Network Controller software are supported (version 5.12.72 has been confirmed to work) as well as UbiOS-based controllers (version 5.12.59 has been confirmed to work). This class is used by our API browser tool which can be found [here](https://github.com/Art-of-WiFi/UniFi-API-browser). A PHP class that provides access to Ubiquiti's [**UniFi Network Controller**](https://unifi-network.ui.com/) API, versions 4.X.X, 5.X.X and 6.0.X of the UniFi Network Controller software are supported (version 6.0.43 has been confirmed to work) as well as UniFi OS-based controllers (version 5.12.59 has been confirmed to work). This class is used by our API browser tool which can be found [here](https://github.com/Art-of-WiFi/UniFi-API-browser).
The package can be installed manually or by using composer/[packagist](https://packagist.org/packages/art-of-wifi/unifi-api-client) for easy inclusion in your projects. The package can be installed manually or by using composer/[packagist](https://packagist.org/packages/art-of-wifi/unifi-api-client) for easy inclusion in your projects.
@@ -11,15 +11,15 @@ The package can be installed manually or by using composer/[packagist](https://p
- you must use **local accounts**, not UniFi Cloud accounts, to access the UniFi Controller API through this class - you must use **local accounts**, not UniFi Cloud accounts, to access the UniFi Controller API through this class
## UbiOS Support ## UniFi OS Support
Support for UbiOS-based controllers (UniFi Dream Machine Pro) has been added as of version 1.1.47. The class automatically detects UbiOS devices and adjusts URLs and several functions/methods accordingly. If your own code applies strict validation of the URL that is passed to the constructor, please adapt your logic to allow URLs without a port suffix when dealing with a UbiOS-based controller. Support for UniFi OS-based controllers (UniFi Dream Machine Pro or Cloud Key Gen2/Cloud Key Gen2 Plus with firmware version 2.0.24 or higher) has been added as of version 1.1.47. The class automatically detects UniFi OS devices and adjusts URLs and several functions/methods accordingly. If your own code applies strict validation of the URL that is passed to the constructor, please adapt your logic to allow URLs without a port suffix when dealing with a UniFi OS-based controller.
Please test all methods you plan on using thoroughly before using the API Client with UbiOS devices in a production environment. Please test all methods you plan on using thoroughly before using the API Client with UniFi OS devices in a production environment.
## Installation ## Installation
You can use [Composer](#composer), [Git](#git) or simply [Download the Release](#download-the-release) to install the API client class. Use [Composer](#composer), [Git](#git) or simply [Download the Release](#download-the-release) to install the API client class.
### Composer ### Composer
@@ -31,7 +31,7 @@ Once composer is installed, simply execute this command from the shell in your p
composer require art-of-wifi/unifi-api-client composer require art-of-wifi/unifi-api-client
``` ```
Or you can manually add the package to your composer.json file: Or manually add the package to your composer.json file:
```javascript ```javascript
{ {
@@ -44,7 +44,7 @@ composer require art-of-wifi/unifi-api-client
Finally, be sure to include the autoloader in your code: Finally, be sure to include the autoloader in your code:
```php ```php
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
``` ```
### Git ### Git
@@ -58,15 +58,15 @@ git clone https://github.com/Art-of-WiFi/UniFi-API-client.git
When git is done cloning, include the file containing the class like so in your code: When git is done cloning, include the file containing the class like so in your code:
```php ```php
require_once('path/to/src/Client.php'); require_once 'path/to/src/Client.php';
``` ```
### Download the Release ### Download the Release
If you prefer not to use composer or git, you can simply [download the package](https://github.com/Art-of-WiFi/UniFi-API-client/archive/master.zip), uncompress the zip file, then include the file containing the class in your code like so: If you prefer not to use composer or git, simply [download the package](https://github.com/Art-of-WiFi/UniFi-API-client/archive/master.zip), uncompress the zip file, then include the file containing the class in your code like so:
```php ```php
require_once('path/to/src/Client.php'); require_once 'path/to/src/Client.php';
``` ```
## Example usage ## Example usage
@@ -77,7 +77,7 @@ A basic example how to use the class:
/** /**
* load the class using the composer autoloader * load the class using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* initialize the Unifi API connection class, log in to the controller and request the alarms collection * initialize the Unifi API connection class, log in to the controller and request the alarms collection
@@ -88,7 +88,7 @@ $login = $unifi_connection->login();
$results = $unifi_connection->list_alarms(); // returns a PHP array containing alarm objects $results = $unifi_connection->list_alarms(); // returns a PHP array containing alarm objects
``` ```
Please refer to the `examples/` directory for some more detailed examples which you can use as a starting point for your own PHP code. Please refer to the `examples/` directory for some more detailed examples which can be used as a starting point for your own PHP code.
#### IMPORTANT NOTES: #### IMPORTANT NOTES:
@@ -249,6 +249,10 @@ The class currently supports the following functions/methods to GET/POST/PUT/DEL
- stat_status() - stat_status()
- stat_sysinfo() - stat_sysinfo()
- stat_voucher() - stat_voucher()
- stat_monthly_aps()
- stat_monthly_gateway()
- stat_monthly_site()
- stat_monthly_user()
- unauthorize_guest() - unauthorize_guest()
- unblock_sta() - unblock_sta()
- unset_locate_ap() (deprecated but still available as alias) - unset_locate_ap() (deprecated but still available as alias)
@@ -265,7 +269,7 @@ Other functions, getters/setters:
- get_is_unifi_os() - get_is_unifi_os()
- get_last_error_message() - get_last_error_message()
- get_last_results_raw() - get_last_results_raw()
- get_request_type() - get_request_method()
- get_site() - get_site()
- get_ssl_verify_host() - get_ssl_verify_host()
- get_ssl_verify_peer() - get_ssl_verify_peer()
@@ -273,7 +277,7 @@ Other functions, getters/setters:
- set_cookies() - set_cookies()
- set_debug() - set_debug()
- set_is_unifi_os() - set_is_unifi_os()
- set_request_type() - set_request_method()
- set_site() - set_site()
- set_ssl_verify_host() - set_ssl_verify_host()
- set_ssl_verify_peer() - set_ssl_verify_peer()
@@ -296,7 +300,7 @@ This class is based on the initial work by the following developers:
and the API as published by Ubiquiti: and the API as published by Ubiquiti:
- https://dl.ui.com/unifi/5.12.35/unifi_sh_api - https://dl.ui.com/unifi/6.0.41/unifi_sh_api
## Important Disclaimer ## Important Disclaimer

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to fetch an Access Point's scanning state/results * description: example basic PHP script to fetch an Access Point's scanning state/results
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* site id and MAC address of AP to query * site id and MAC address of AP to query

View File

@@ -3,11 +3,11 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: @4oo4 * contributed by: @4oo4
* description: example script to upgrade device firmware (can be scheduled with systemd/cron) * description: example script to upgrade device firmware (can be scheduled with systemd/cron)
* to the most current version * to the most current version
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
require_once('config.php'); require_once 'config.php';
/** /**
* site id of the AP to update * site id of the AP to update

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example PHP script to perform a basic auth of a guest device * description: example PHP script to perform a basic auth of a guest device
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the MAC address of the device to authorize * the MAC address of the device to authorize

View File

@@ -3,21 +3,21 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to auth a guest device and attach a note to it, * description: example basic PHP script to auth a guest device and attach a note to it,
* this requires the device to be connected to the WLAN/LAN at moment of * this requires the device to be connected to the WLAN/LAN at moment of
* authorization * authorization
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the MAC address of the device to authorize * the MAC address of the device to authorize

View File

@@ -3,27 +3,26 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: @malcolmcif, based on another Art of WiFi example * contributed by: @malcolmcif, based on another Art of WiFi example
* description: basic PHP script to block a list of mac addresses passed in via command line, * description: basic PHP script to block a list of mac addresses passed in via command line,
* output is to console in non json format * output is to console in non json format
* *
* usage: * usage:
* php block_list.php <list of comma seperated mac addresses> * php block_list.php <list of comma seperated mac addresses>
* *
* example: * example:
* php block_list.php 09:09:09:09:09:09,10:10:10:10:10:10 * php block_list.php 09:09:09:09:09:09,10:10:10:10:10:10
*
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
$debug = false; $debug = false;
/** /**

View File

@@ -3,14 +3,14 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to modify the super_mgmt settings for UniFi controller and output results * description: example basic PHP script to modify the super_mgmt settings for UniFi controller and output results
* in json format * in json format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* UniFi controller credentials and the site to use, in this case since we are modifying global settings you can select * UniFi controller credentials and the site to use, in this case since we are modifying global settings you can select
@@ -18,7 +18,7 @@ require_once('vendor/autoload.php');
* *
* NOTE: in this case you need to enter Super Administrator account credentials in config.php * NOTE: in this case you need to enter Super Administrator account credentials in config.php
*/ */
require_once('config.php'); require_once 'config.php';
$site_id = 'default'; $site_id = 'default';
$debug = false; $debug = false;

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to change the WPA2 password/PSK of a WLAN, returns true on success * description: example basic PHP script to change the WPA2 password/PSK of a WLAN, returns true on success
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* The site to which the WLAN you want to modify belongs * The site to which the WLAN you want to modify belongs

View File

@@ -1,10 +1,8 @@
<?php <?php
/** /**
* Copyright (c) 2017, Art of WiFi * Copyright (c) 2021, Art of WiFi
*
* This file is subject to the MIT license that is bundled
* with this package in the file LICENSE.md
* *
* This file is subject to the MIT license that is bundled with this package in the file LICENSE.md
*/ */
/** /**

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to create a new site, returns true upon success * description: example basic PHP script to create a new site, returns true upon success
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use to log in to the controller * the site to use to log in to the controller

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to create a set of vouchers, returns an array containing the newly created vouchers * description: example basic PHP script to create a set of vouchers, returns an array containing the newly created vouchers
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* minutes the voucher is valid after activation (expiration time) * minutes the voucher is valid after activation (expiration time)

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to delete a site, returns true upon success * description: example basic PHP script to delete a site, returns true upon success
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use to log in to the controller * the site to use to log in to the controller

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to disable/enable a device, returns true upon success * description: example basic PHP script to disable/enable a device, returns true upon success
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the 24 character id of the device to disable/enable * the 24 character id of the device to disable/enable

View File

@@ -12,13 +12,13 @@
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use to log in to the controller * the site to use to log in to the controller

View File

@@ -3,20 +3,20 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to execute a custom API request using the * description: example basic PHP script to execute a custom API request using the
* custom_api_request() function/method * custom_api_request() function/method
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* The site to authorize the device with * The site to authorize the device with
@@ -27,10 +27,10 @@ $site_id = '<enter your site id here>';
/** /**
* parameters * parameters
*/ */
$url = '/api/s/' . $site_id . '/stat/fwupdate/latest-version'; $url = '/api/s/' . $site_id . '/stat/fwupdate/latest-version';
$request_type = 'GET'; $request_method = 'GET';
$payload = null; $payload = null;
$return = 'array'; $return = 'array';
/** /**
* initialize the UniFi API connection class and log in to the controller and do our thing * initialize the UniFi API connection class and log in to the controller and do our thing
@@ -38,7 +38,7 @@ $return = 'array';
$unifi_connection = new UniFi_API\Client($controlleruser, $controllerpassword, $controllerurl, $site_id, $controllerversion); $unifi_connection = new UniFi_API\Client($controlleruser, $controllerpassword, $controllerurl, $site_id, $controllerversion);
$set_debug_mode = $unifi_connection->set_debug($debug); $set_debug_mode = $unifi_connection->set_debug($debug);
$loginresults = $unifi_connection->login(); $loginresults = $unifi_connection->login();
$results = $unifi_connection->custom_api_request($url, $request_type, $payload, $return); $results = $unifi_connection->custom_api_request($url, $request_method, $payload, $return);
/** /**
* provide feedback in JSON format or as PHP Object * provide feedback in JSON format or as PHP Object

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: mtotone * contributed by: mtotone
* description: example of how to extend validity of guest authorizations * description: example of how to extend validity of guest authorizations
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* must be adapted to your site! * must be adapted to your site!

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to pull current alarms from the UniFi controller and output in json format * description: example basic PHP script to pull current alarms from the UniFi controller and output in json format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use * the site to use

View File

@@ -3,20 +3,20 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example to pull connected user numbers for Access Points from the UniFi controller and output the results * description: example to pull connected user numbers for Access Points from the UniFi controller and output the results
* in raw HTML format * in raw HTML format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc there if not already present) * include the config file (place your credentials etc there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the short name of the site which you wish to query * the short name of the site which you wish to query

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: @gahujipo * contributed by: @gahujipo
* description: example to pull connected users and their details from the UniFi controller and output the results * description: example to pull connected users and their details from the UniFi controller and output the results
* in JSON format * in JSON format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc there if not already present) * include the config file (place your credentials etc there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the short name of the site which you wish to query * the short name of the site which you wish to query

View File

@@ -3,20 +3,20 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example to pull site health metrics from the UniFi controller and output the results * description: example to pull site health metrics from the UniFi controller and output the results
* in json format * in json format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the short name of the site you wish to query * the short name of the site you wish to query

46
examples/list_sites.php Executable file
View File

@@ -0,0 +1,46 @@
<?php
/**
* PHP API usage example
*
* contributed by: Art of WiFi
* description: example basic PHP script to list all site on the controller that are
* available to the admin account defined in config.php
*/
/**
* using the composer autoloader
*/
require_once 'vendor/autoload.php';
/**
* include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example
*/
require_once 'config.php';
/**
* we use the default site in the initial connection
*/
$site_id = 'default';
/**
* initialize the UniFi API connection class and log in to the controller and do our thing
*/
$unifi_connection = new UniFi_API\Client($controlleruser, $controllerpassword, $controllerurl, $site_id, $controllerversion);
$set_debug_mode = $unifi_connection->set_debug($debug);
$loginresults = $unifi_connection->login();
$data = $unifi_connection->list_sites();
/**
* we can render the full results in json format
*/
//echo json_encode($data, JSON_PRETTY_PRINT);
/**
* or we print each site name and site id
*/
foreach ($data as $site) {
echo 'Site name: ' . $site->desc . ', site id: ' . $site->name . PHP_EOL;
}
echo PHP_EOL;

View File

@@ -3,20 +3,20 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to pull Facebook social auth details from the UniFi controller and output * description: example basic PHP script to pull Facebook social auth details from the UniFi controller and output
* them in basic HTML format * them in basic HTML format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use * the site to use

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to pull stats for s epcific user/client device from the UniFi controller and output in json format * description: example basic PHP script to pull stats for s epcific user/client device from the UniFi controller and output in json format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use * the site to use

View File

@@ -12,7 +12,7 @@ require 'vendor/autoload.php';
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use * the site to use
@@ -55,6 +55,9 @@ $loginresults = $unifi_connection->login();
if ($loginresults) { if ($loginresults) {
$pdu_details = $unifi_connection->list_devices($pdu_mac); $pdu_details = $unifi_connection->list_devices($pdu_mac);
/**
* change the model below from USPPDUP to UP1 when using a USP-Plug (thanks to @thesohoguy for contributing this)
*/
if (!empty($pdu_details) && property_exists($pdu_details[0], 'model') && $pdu_details[0]->model === 'USPPDUP' && property_exists($pdu_details[0], 'outlet_overrides')) { if (!empty($pdu_details) && property_exists($pdu_details[0], 'model') && $pdu_details[0]->model === 'USPPDUP' && property_exists($pdu_details[0], 'outlet_overrides')) {
$device_id = $pdu_details[0]->_id; $device_id = $pdu_details[0]->_id;
$outlet_overrides = $pdu_details[0]->outlet_overrides; $outlet_overrides = $pdu_details[0]->outlet_overrides;

View File

@@ -3,19 +3,19 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to force a client device to reconnect * description: example basic PHP script to force a client device to reconnect
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the MAC address to reconnect * the MAC address to reconnect

View File

@@ -3,7 +3,7 @@
* Test the connection to your UniFi controller * Test the connection to your UniFi controller
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: PHP script to check/debug the connection to your controller using PHP and cURL * description: PHP script to check/debug the connection to your controller using PHP and cURL
*/ */
/** /**
@@ -11,7 +11,7 @@
* see the config.template.php file for an example. * see the config.template.php file for an example.
* (will only be used here to get the URL to the controller) * (will only be used here to get the URL to the controller)
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* Check whether the cURL module supports SSL * Check whether the cURL module supports SSL

View File

@@ -3,20 +3,20 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example to toggle the locate function (flashing LED) on an Access Point and * description: example to toggle the locate function (flashing LED) on an Access Point and
* output the response in json format * output the response in json format
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* site id to use * site id to use

View File

@@ -3,8 +3,8 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: @malcolmcif, based on another Art of WiFi example * contributed by: @malcolmcif, based on another Art of WiFi example
* description: basic PHP script to unblock a list of mac addresses passed in via command line, * description: basic PHP script to unblock a list of mac addresses passed in via command line,
* output is to console in non json format * output is to console in non json format
* *
* usage: * usage:
* php unblock_list.php <list of comma seperated mac addresses> * php unblock_list.php <list of comma seperated mac addresses>
@@ -17,13 +17,13 @@
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
$debug = false; $debug = false;
/** /**

View File

@@ -3,21 +3,21 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to update the port settings of an AC-IW device * description: example basic PHP script to update the port settings of an AC-IW device
* FYI: the AC-IW device has three ports, one for the wired uplink and two with external connectors * FYI: the AC-IW device has three ports, one for the wired uplink and two with external connectors
* note: requires controller version 5.5.X or higher (to be verified) * note: requires controller version 5.5.X or higher (to be verified)
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use to log in to the controller * the site to use to log in to the controller

View File

@@ -3,20 +3,20 @@
* PHP API usage example * PHP API usage example
* *
* contributed by: Art of WiFi * contributed by: Art of WiFi
* description: example basic PHP script to update WLAN settings of a device when using a controller version 5.5.X or higher * description: example basic PHP script to update WLAN settings of a device when using a controller version 5.5.X or higher
* where set_ap_radiosettings() throws an error * where set_ap_radiosettings() throws an error
*/ */
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use to log in to the controller * the site to use to log in to the controller

View File

@@ -13,13 +13,13 @@
/** /**
* using the composer autoloader * using the composer autoloader
*/ */
require_once('vendor/autoload.php'); require_once 'vendor/autoload.php';
/** /**
* include the config file (place your credentials etc. there if not already present) * include the config file (place your credentials etc. there if not already present)
* see the config.template.php file for an example * see the config.template.php file for an example
*/ */
require_once('config.php'); require_once 'config.php';
/** /**
* the site to use to log in to the controller * the site to use to log in to the controller

File diff suppressed because it is too large Load Diff