RadonEye BLE Interface

FR:HJ is not supported by jdeath/rd200v2 yet. Follow the directions to request support or add it yourself as the readme instructs.

Thank you very much for calling that out! In the mix of things I completely missed that HJ wasn’t in the list for your implementation. I will do that now.

Much appreciated!

Folks, could I ask owners of RadonEye v1 to test GitHub - sormy/radoneye: Ecosense RadonEye CLI and API for Python

git clone https://github.com/sormy/radoneye
cd radoneye
python3 -m venv .venv
.venv/bin/pip3 install .
.venv/bin/radoneye

.venv/bin/radoneye list
.venv/bin/radoneye status ...
.venv/bin/radoneye history ...
.venv/bin/radoneye beep ...

Library and CLI should support V1 and V2 devices including features:

  • beep
  • history
  • serial
  • model
  • version
  • latest level
  • day average level
  • monthly average level
  • peak historical level
  • raw counts (current/previous as seen on device itself)
  • uptime (minutes and as string as seen on device itself)

Hi!

I’m a v1 user. The list, status and beep commands work fine, but history fails:

rpi:~/radoneye $ .venv/bin/radoneye status CD:B6:62:3D:96:FB
alarm_enabled	yes
alarm_interval_minutes	10
alarm_level_bq_m3	180.0
alarm_level_pci_l	4.86
counts_current	0
counts_previous	4
counts_str	0/4
day_avg_bq_m3	0.0
day_avg_pci_l	0.0
display_unit	bq/m3
firmware_version	V1.2.4
latest_bq_m3	16.0
latest_pci_l	0.44
model	RD200
month_avg_bq_m3	0.0
month_avg_pci_l	0.0
peak_bq_m3	233.0
peak_pci_l	6.29
serial	RE22005220011
uptime_minutes	742
uptime_str	0d12h22m
rpi:~/radoneye $ .venv/bin/radoneye history CD:B6:62:3D:96:FB
Traceback (most recent call last):
  File "/usr/lib/python3.11/asyncio/tasks.py", line 490, in wait_for
    return fut.result()
           ^^^^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pi/radoneye/.venv/bin/radoneye", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/__main__.py", line 8, in main
    asyncio.run(cli_main(sys.argv))
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/cli.py", line 313, in main
    await args.func(args)
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/cli.py", line 95, in cmd_history
    history = await client.history()
              ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/client.py", line 54, in history
    return await self.__get_interface().history()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/interface_v1.py", line 253, in history
    result_size = await asyncio.wait_for(size_future, self.status_read_timeout)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/tasks.py", line 492, in wait_for
    raise exceptions.TimeoutError() from exc
TimeoutError

Thanks for your work!

We have tested this library with another user and it should work well. This error is timeout on waiting for E8 message that supposed to tell size of the history. Mind try again when you are closer to device and there are no other processes polling it? If it still doesn’t work, then I will need you help to dump bluetooth stack messages to see what is going on.

I always get the same error with history. Device is at 50 cm.

.venv/bin/radoneye history CD:B6:62:3D:96:FB
Traceback (most recent call last):
  File "/usr/lib/python3.11/asyncio/tasks.py", line 490, in wait_for
    return fut.result()
           ^^^^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pi/radoneye/.venv/bin/radoneye", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/__main__.py", line 8, in main
    asyncio.run(cli_main(sys.argv))
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/cli.py", line 313, in main
    await args.func(args)
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/cli.py", line 95, in cmd_history
    history = await client.history()
              ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/client.py", line 54, in history
    return await self.__get_interface().history()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/radoneye/.venv/lib/python3.11/site-packages/radoneye/interface_v1.py", line 253, in history
    result_size = await asyncio.wait_for(size_future, self.status_read_timeout)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/tasks.py", line 492, in wait_for
    raise exceptions.TimeoutError() from exc
TimeoutError

I just bought a rd200 and have tried to get this setup working to no avail. The rd200 shows v3 on the lcd, is that an even newer model? Where would I find the serial? Closest I could find is the device ID which starts with an “IC.”