@ubuntu:~/scripts/miflora-0.4$ sudo ./demo.py --backend bluepy poll C4:7C:8D:61:xx:xx
Getting data from Mi Flora
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/btlewrap/bluepy.py", line 26, in _func_wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/btlewrap/bluepy.py", line 55, in connect
self._peripheral = Peripheral(mac, iface=iface)
File "/usr/local/lib/python3.5/dist-packages/bluepy/btle.py", line 353, in __init__
self._connect(deviceAddr, addrType, iface)
File "/usr/local/lib/python3.5/dist-packages/bluepy/btle.py", line 402, in _connect
"Failed to connect to peripheral %s, addr type: %s" % (addr, addrType))
bluepy.btle.BTLEException: Failed to connect to peripheral C4:7C:8D:61:xx:xx, addr type: public
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "./demo.py", line 99, in <module>
main()
File "./demo.py", line 95, in main
args.func(args)
File "./demo.py", line 28, in poll
print("FW: {}".format(poller.firmware_version()))
File "/home/madrian/scripts/miflora-0.4/miflora/miflora_poller.py", line 103, in firmware_version
with self._bt_interface.connect(self._mac) as connection:
File "/usr/local/lib/python3.5/dist-packages/btlewrap/base.py", line 44, in __enter__
self._backend.connect(self._mac)
File "/usr/local/lib/python3.5/dist-packages/btlewrap/bluepy.py", line 32, in _func_wrapper
raise BluetoothBackendException() from last_error
btlewrap.base.BluetoothBackendException
Then I run again and it's polling fine. What causes this?
The radio connection between your Bluetooth dongle and the sensor is quite bad and it sometimes fails. Bluetooth LE is not meant to be used over longer distances. My recommendation is: The distance between Bluetooth dongle should be less than 5 meters. IF you have a wall or other objects (e.g. furniture) in the line of sight, it's probably much shorter.
Some other application on your computer is using the Bluetooth dongle in parallel.
You have some other radio signal disturbing the communication.
Sometimes I get error like:
Then I run again and it's polling fine. What causes this?