BlueGate is a software package, which implements a gateway for Bluetooth Low Energy (BLE) devices. It main purpose is to convey information from the BTLE devices onto different type of cloud services. The package is implemented in Python and uses the BlueZ Bluetooth stack. The core of the system are classes which handle detection and connection of all available BLE nodes. The gateway keeps itself updated with all information about the states of all available Bluetooth services in the different BLE nodes and this can then be reported to cloud services. BlueGate access BlueZ via its executable programs and hence do not inherit any of the GPL implications of the BlueZ software. The package also contains a small web server which presents a REST API for accessing all the BLE node information. This REST API implements a subset of the specifications described in the documents GATT-REST-API-WhitePaper_D05r11.pdf and GAP-REST-API-WhitePaper_D05r06, but it can easily be extended to support more parts. It is not mandatory to use the REST API if another approach is desired. All the core classes are available for other Python implementations.
The package comes with example of how to send data to cloud services but it is also very easy to add new ones. The reporting interval for the cloud services can be either time interval specific or based on BLE notifications. A number of example web pages, which demonstrate how to build a user interface to the gateway is also provided in the BlueGate package. BlueGate can be used on any operating system where the BlueZ package is available.