Devices

Access Point

The Airfinder AccessPoint acts as the BLE Gateway to Symphony Link traffic, the ultimately ends up to Conductor through the Gateway. The AccessPoint can also act as a Location Beacon when configured to do so.

Retrieving an AccessPoint object is really easy with the User.get_access_point() method, and supports all address schemes

my_ap = u.get_access_point("C0:00:00:00:XX:XX")

The Access Point is a child class of the Module, and comes with all the same functionality. Some of the added functionality can be seen through the configuration of the AccessPoint.

To send and request these configurations, the methods construct a Symphony Link DownlinkMessage with the formatted data to perform the request. The optional arguments in the methods are identical to those in Module.send_message() and will construct a DownlinkMessage the same. Please reference Downlink Mechanisms for more!

Location Beacon Operation

There are two AP Operation Modes, Connectable and Reference. When acting as a “Reference”/location beacon, the Access Point does only that. To determine the AP Type of the Access Point can be done as so

my_ap.ap_type
> AccessPoint.APType.Connectable

conf_dl = my.ap.set_ap_type(AccessPoint.APType.Reference)
conf_dl.wait_for_success()

In Addition, Location Groups and Weights can also be set for Access Points in this mode of operation.

# Location Weights
my_ap.location_weight
> 0

conf_dl = my_ap.set_location_weight(3)
conf_dl.wait_for_success()

# Location Groups
my_ap.location_group
> 0

conf_dl = my_ap.set_location_group(5)
conf_dl.wait_for_success()

Then, the schedule can be defined with the Schedule object, same as the Location Beacon.

Power Adjustment

Advertising Rate

Time Sync Rate

Duty Cycle

Status

Location Beacon

Location Beacons are installed around a Site, Area and Zone. These beacons must be installed in known areas and provisioned - using the UI will give the best visual representation of this.

While installed, the beacons will advertise their address for the Standard Tag to report to the Cloud. These devices also communicate directly through the SymBLE Access Point.

To get a location beacon node, use the User.get_node() method…

lb = user.get_node(xx:xx:xx:xx:xx:xx)

Which will construct the Location object for Location Beacon devices.

To configure the behavior of the Location Beacon, the following fields are modifiable…

Advertising Enable

Enables or Disables the device as a Location Beacon. To view this value

lb.adv_en
> True

Advertising Schedule

The Advertising Schedule of the Location Beacon controls when the Location Beacon has its advertisements enabled. To easily modify this advertisement schedule, the Schedule is available.

To see the advertising schedule of a location beacon, simply

schedule = lb.schedule

and the default location beacon schedule looks like this

schedule.show_grid()

        |   Sunday   |   Monday   |  Tuesday   | Wednesday  |  Thursday  |   Friday   |  Saturday  |
====================================================================================================
Hour  0 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  1 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  2 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  3 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  4 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  5 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  6 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  7 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  8 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  9 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 10 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 11 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 12 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 13 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 14 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 15 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 16 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 17 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 18 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 19 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 20 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 21 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 22 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 23 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |

To modify this schedule, you can either set a specific hour to a certain value for each day with Schedule.set_hour_per_day(). In this example, 03:00 AM UTC is set to not advertise

schedule.set_hour_per_day(3, False)
schedule.show_grid()

        |   Sunday   |   Monday   |  Tuesday   | Wednesday  |  Thursday  |   Friday   |  Saturday  |
====================================================================================================
Hour  0 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  1 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  2 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  3 |   False    |   False    |   False    |   False    |   False    |   False    |   False    |
Hour  4 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  5 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  6 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  7 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  8 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour  9 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 10 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 11 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 12 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 13 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 14 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 15 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 16 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 17 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 18 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 19 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 20 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 21 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 22 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |
Hour 23 |    True    |    True    |    True    |    True    |    True    |    True    |    True    |

Then, to set a single value for an entire day, the Schedule.set_day() will help. The next example completely disabled advertisements on Wednesday.

schedule.set_day(schedule.Day.WEDNESDAY, False)
schedule.show_grid()

        |   Sunday   |   Monday   |  Tuesday   | Wednesday  |  Thursday  |   Friday   |  Saturday  |
====================================================================================================
Hour  0 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  1 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  2 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  3 |   False    |   False    |   False    |   False    |   False    |   False    |   False    |
Hour  4 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  5 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  6 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  7 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  8 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  9 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 10 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 11 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 12 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 13 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 14 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 15 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 16 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 17 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 18 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 19 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 20 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 21 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 22 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 23 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |

Then to just set one specific hour on one specific day, you can use the Schedule.set_hour() method. This example disables location beacons on Sunday at 2:00 PM UTC

schedule.set_hour(schedule.Day.SUNDAY, 14, False)
schedule.show_grid()

        |   Sunday   |   Monday   |  Tuesday   | Wednesday  |  Thursday  |   Friday   |  Saturday  |
====================================================================================================
Hour  0 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  1 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  2 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  3 |   False    |   False    |   False    |   False    |   False    |   False    |   False    |
Hour  4 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  5 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  6 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  7 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  8 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour  9 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 10 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 11 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 12 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 13 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 14 |   False    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 15 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 16 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 17 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 18 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 19 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 20 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 21 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 22 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |
Hour 23 |    True    |    True    |    True    |   False    |    True    |    True    |    True    |

RSSI Adjustment

A signed 8-bit integer, that is used to adjust the RSSI readings of the Location Beacon.

Location Weight

A field to add bias to or from a certain Location Beacon.

Location Group

A field used to associate multiple Location Beacon devices together, to add bias given the installation point of the device.

Transmit Power

A signed 8-bit integer, that sets the Transmit Power of the Location Beacon.

Standard Tag

TODO

Supertag

TODO