Chrome has an annoying warning when downloading .py files, e.g https://stackoverflow.com/q/34130774/1976323
Workaround is to enable the "Ask where to save each file before downloading" setting.
The city hub requires that certain messages are write with response and
others are write without response, otherwise it will cause BlueZ to
disconnect because it does not follow proper BLE protocol.
On Linux/BlueZ, sometimes the services are not enumerated properly and
the user has to remove the Bluetooth device from BlueZ, then it should
work correctly.