Skip to content

Commit

Permalink
General code cleanup (replace tabs by spaces, etc.)
Browse files Browse the repository at this point in the history
Finalised merge of PRs #10, #11, #12 and #13
Methods/functions added:
- list_country_codes()
- set_guestlogin_settings_base()
- set_site_connectivity()
- set_site_country()
- set_site_guest_access()
- set_site_locale()
- set_site_mgmt()
- set_site_name()
- set_site_ntp()
- set_site_snmp()
Examples added:
- ap_upgrade_firmware.php
- site_provisioning_example
- update_ac-iw_ports.php
  • Loading branch information
malle-pietje committed Mar 24, 2018
1 parent 2c45d95 commit d7827fd
Show file tree
Hide file tree
Showing 14 changed files with 751 additions and 689 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ The class currently supports the following functions/methods to get/post/put/del
- list_alarms()
- list_aps() (deprecated but still available as alias)
- list_clients()
- list_country_codes()
- list_current_channels()
- list_dashboard()
- list_devices()
Expand Down Expand Up @@ -73,9 +74,18 @@ The class currently supports the following functions/methods to get/post/put/del
- set_ap_radiosettings()
- set_device_settings_base()
- set_guestlogin_settings()
- set_guestlogin_settings_base()
- set_locate_ap() (deprecated but still available as alias)
- set_networksettings_base()
- set_radius_account_base()
- set_site_connectivity()
- set_site_country()
- set_site_guest_access()
- set_site_locale()
- set_site_mgmt()
- set_site_name()
- set_site_ntp()
- set_site_snmp()
- set_sta_name()
- set_sta_note()
- set_usergroup()
Expand Down
6 changes: 0 additions & 6 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,3 @@ If you would like to share your own example file(s), please open an issue and in
## Important Disclaimer

Use these examples at your own risk!

## Provisioning script

The example provision script easily creates a large number of sites with comparable network configuration. It sets the LAN config
to site specific configuration. Copy the settings.template.php and config.template.php to their respective files for testing. This is meant as a
basic provisioning only system. Currently used against controller 5.6.30.
38 changes: 21 additions & 17 deletions examples/ap_upgrade_firmware.php
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,33 +1,37 @@
<?php

/**
* Checks and upgrades AP firmware (can be scheduled with systemd/cron)
**/

/**
* PHP API usage example
*
* contributed by: @4oo4
* description: example script to check and upgrade device firmware (can be scheduled with systemd/cron)
* to the most current version
*/
require_once('vendor/autoload.php');
require_once('config.php');

// Because of a bug in the API, the site name is probably stuck at 'default' rather than what you actually named it:
// https://github.com/Art-of-WiFi/UniFi-API-browser/issues/35
$site_id = 'default';

// AP MAC address formatted with colons
$device_mac = 'de:ad:be:ef:01:23';
/**
* site id of the AP to update
*/
$site_id = '<enter your site id here>';

/**
* initialize the Unifi API connection class, log in to the controller and request the alarms collection
* (this example assumes you have already assigned the correct values to the variables used)
* device MAC address formatted with colons, e.g. 'de:ad:be:ef:01:23'
*/
$device_mac = '<enter MAC address of device to update>';

/**
* initialize the UniFi API connection class, log in to the controller
* (this example assumes you have already assigned the correct values in config.php to the variables used)
*/
$unifi_connection = new UniFi_API\Client($controlleruser, $controllerpassword, $controllerurl, $site_id, $controllerversion, false);
$login = $unifi_connection->login();

// Run the actual upgrade
/**
* Run the actual upgrade
*/
$results = $unifi_connection->upgrade_device($device_mac);

/**
* provide feedback in json format from $response given by upgrade_device();
*/
echo json_encode($results, JSON_PRETTY_PRINT);

?>
echo json_encode($results, JSON_PRETTY_PRINT);
36 changes: 18 additions & 18 deletions examples/extend_guest_auth.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,25 @@
$loginresults = $unifi_connection->login();

if ($loginresults === 400) {
print "UniFi controller login failure, please check your credentials in config.php.\n";
print "UniFi controller login failure, please check your credentials in config.php.\n";
} else {
$guestlist = $unifi_connection->list_guests();
// print "<pre>"; print_r ($guestlist); print "</pre>";
// loop thru all known guests
foreach ($guestlist as $guest) {
// print "<pre>"; print_r ($guest); print "</pre>";
print "<pre>" . $guest->_id . " (" . $guest->mac . "), valid until " . date (DATE_ATOM, $guest->end) . " (" . $guest->end . ")</pre>";
$guestlist = $unifi_connection->list_guests();
// print "<pre>"; print_r ($guestlist); print "</pre>";
// loop thru all known guests
foreach ($guestlist as $guest) {
// print "<pre>"; print_r ($guest); print "</pre>";
print "<pre>" . $guest->_id . " (" . $guest->mac . "), valid until " . date (DATE_ATOM, $guest->end) . " (" . $guest->end . ")</pre>";

// just a sample: only extend validity of guests which have end date after 2017-04-02
if ($guest->end > 1491166482) {
// extend clients five times = five days
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
}
}
// just a sample: only extend validity of guests which have end date after 2017-04-02
if ($guest->end > 1491166482) {
// extend clients five times = five days
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
if (!$unifi_connection->extend_guest_validity ($guest->_id)) print "Extend failed for guest with id " . $guest->_id . "\n";
}
}

$logout_results = $unifi_connection->logout();
$logout_results = $unifi_connection->logout();
}
8 changes: 4 additions & 4 deletions examples/list_ap_connected_users.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* PHP API usage example
*
* 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
*/

Expand Down Expand Up @@ -36,7 +36,7 @@
*/
header('Content-Type: text/html; charset=utf-8');
foreach ($aps_array as $ap) {
if ($ap->type === 'uap') {
echo '<b>AP name:</b>' . $ap->name . ' <b>model:</b>' . $ap->model . ' <b># connected clients:</b>' . $ap->num_sta . '<br>';
}
if ($ap->type === 'uap') {
echo '<b>AP name:</b>' . $ap->name . ' <b>model:</b>' . $ap->model . ' <b># connected clients:</b>' . $ap->num_sta . '<br>';
}
}
2 changes: 1 addition & 1 deletion examples/list_site_health.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* PHP API usage example
*
* 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
*/

Expand Down
Loading

0 comments on commit d7827fd

Please sign in to comment.