basnijholt / miflora

☘️🌑🌼πŸ₯€πŸ‘ Mi Flora Plant sensor Python package
MIT License
366 stars 98 forks source link

Poll error #98

Closed adrianmihalko closed 6 years ago

adrianmihalko commented 6 years ago

Sometimes I get error like:

@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?

ChristianKuehnel commented 6 years ago

Hi @adrianmihalko ,

It could be one of several reasons: