claranet4 icon indicating copy to clipboard operation
claranet4 copied to clipboard

IndexError during read on Ubuntu

Open bede opened this issue 3 years ago • 3 comments

Reported by @nick297

(aranet) nick@sandy2:~/soft$ claranet4 scan
INFO: Found 94 device(s)

(aranet) nick@sandy2:~/soft$ claranet4 read
INFO: Found 67 device(s)
INFO: Found 1 Aranet4 device(s)
INFO: Selected Aranet4 1D6BA (-64dBm)
Traceback (most recent call last):
  File "/home/nick/miniconda3/envs/aranet/bin/claranet4", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/cli.py", line 55, in main
    defopt.run(
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/defopt.py", line 356, in run
    return call()
           ^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/cli.py", line 47, in read
    reading = lib.read(address)
              ^^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/lib.py", line 98, in read
    measurements = asyncio.run(request_measurements(device.address))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/asyncio/base_events.py", line 650, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/lib.py", line 62, in request_measurements
    async with BleakClient(address) as client:
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/bleak/__init__.py", line 433, in __aenter__
    await self.connect()
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/bleak/__init__.py", line 471, in connect
    return await self._backend.connect(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/bleak/backends/bluezdbus/client.py", line 190, in connect
    assert_reply(reply)
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/bleak/backends/bluezdbus/utils.py", line 20, in assert_reply
    raise BleakDBusError(reply.error_name, reply.body)
bleak.exc.BleakDBusError: [org.bluez.Error.Failed] Software caused connection abort
(aranet) nick@sandy2:~/soft$ claranet4 read E7:27:35:3E:60:FA
INFO: Selected Aranet4 1D6BA (-65dBm)

Traceback (most recent call last):
  File "/home/nick/miniconda3/envs/aranet/bin/claranet4", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/cli.py", line 55, in main
    defopt.run(
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/defopt.py", line 356, in run
    return call()
           ^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/cli.py", line 47, in read
    reading = lib.read(address)
              ^^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/lib.py", line 99, in read
    return Reading(device, measurements)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/lib.py", line 37, in __init__
    self.co2: int = le16(response)
                    ^^^^^^^^^^^^^^
  File "/home/nick/miniconda3/envs/aranet/lib/python3.11/site-packages/claranet4/lib.py", line 46, in le16
    return raw[start] + (raw[start + 1] << 8)
           ~~~^^^^^^^
IndexError: bytearray index out of range

bede avatar Feb 07 '23 14:02 bede

Also sometimes throws:

$ claranet4 read --timeout 1
INFO: Found 58 device(s)
INFO: Found 1 Aranet4 device(s)
INFO: Selected Aranet4 1D6BA (-74dBm)
Traceback (most recent call last):
  File "/home/bede/miniconda3/envs/claranet4/bin/claranet4", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/bede/claranet4/src/claranet4/cli.py", line 60, in main
    defopt.run(
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/site-packages/defopt.py", line 356, in run
    return call()
           ^^^^^^
  File "/home/bede/claranet4/src/claranet4/cli.py", line 52, in read
    reading = lib.read(address, timeout=timeout)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bede/claranet4/src/claranet4/lib.py", line 99, in read
    measurements = asyncio.run(request_measurements(device.address))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/bede/claranet4/src/claranet4/lib.py", line 63, in request_measurements
    async with BleakClient(address) as client:
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/site-packages/bleak/__init__.py", line 491, in __aenter__
    await self.connect()
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/site-packages/bleak/__init__.py", line 531, in connect
    return await self._backend.connect(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/site-packages/bleak/backends/bluezdbus/client.py", line 244, in connect
    assert_reply(reply)
  File "/home/bede/miniconda3/envs/claranet4/lib/python3.11/site-packages/bleak/backends/bluezdbus/utils.py", line 22, in assert_reply
    raise BleakDBusError(reply.error_name, reply.body)
bleak.exc.BleakDBusError: [org.bluez.Error.Failed] Software caused connection abort

bede avatar Jun 13 '23 13:06 bede

@nick297 any idea on if you'd paired the device already? It doesn't seem like claranet4 handles pairing on Linux, I was getting various errors on my Raspberry Pi until I thought to first pair the device by other means and now it works fine...

edasmalchi avatar Sep 27 '23 18:09 edasmalchi

I hadn’t, but that probably explains it. Got it working on Mac OS after pairing On 27 Sep 2023, at 19:03, Eric Dasmalchi @.***> wrote: @nick297 any idea on if you'd paired the device already? It doesn't seem like claranet4 handles pairing on Linux, I was getting various errors on my Raspberry Pi until I thought to first pair the device by other means and now it works fine...

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

nick297 avatar Sep 28 '23 06:09 nick297