Placeholder for information regarding the RadonEye app.
Source can be found here: GitHub - petero-dk/org.radoneye
The test version can be installed from here: RadonEye | Homey
Placeholder for information regarding the RadonEye app.
Source can be found here: GitHub - petero-dk/org.radoneye
The test version can be installed from here: RadonEye | Homey
I know there is an issue with version 3 (and maybe version 2) firmware, but I don’t have that version so I am not able to directly test it.
If anyone has experience in Homey apps development and have a Radon Eye version 2 or 3 I would be happy to guide and co-develop
I have two v3.0.1, I could send one to you ![]()
really
or you tell me what to do…
Cheers
Marc
Supportfile
6803425f-d06e-41bf-9178-35dd3e27bdba
Does this help?
The RadonEye RD200 is a smart radon detector using a pulsed ionization chamber for real-time monitoring, with Bluetooth LE (BLE) connectivity for data access via apps or custom Python scripts. It provides radon levels in Bq/m³ or pCi/L, updated every 10 minutes (60-minute moving average), with high sensitivity (30 cph per pCi/L) and accuracy <±10% at 10 pCi/L. Data logging stores up to 1 year of hourly readings; power via 12V DC adapter, operating range 0-40°C, RH<80%.
Versions (V1, V2, V3.0.1) differ mainly in BLE packet structure and data fields, identified by serial number prefix (e.g., FR:R2 for V1, FR:RU/RE/GI for V2). All share core radon metrics but V2/V3 add pulse counters and detailed uptime for better validation in Python integrations like rd200v2 GitHub repo. V3.0.1 is a firmware update improving stability without new fields.
All versions transmit via packets like 0x40 (status) and 0x51 (details), parsed as Little-Endian in Python (e.g., struct.unpack). Core fields are available across versions; extended ones only in V2+.
| Field Name | Type/Format | Unit | Value Range/Notes | Field Size (Bytes) | Versions | Remarks |
|---|---|---|---|---|---|---|
| Radon Current | uint16 | Bq/m³ | 1-3700 (10-min update) | 2 | V1/V2/V3 | Real-time, offset-corrected |
| Radon 24h Average | uint16 | Bq/m³ | Hourly rolling average | 2 | V1/V2/V3 | Short-term trend |
| Radon 1-Month Average | uint16 | Bq/m³ | Long-term (up to 1 year storage) | 2 | V1/V2/V3 | Compliance monitoring |
| Peak Radon | uint16 | Bq/m³ | Maximum since start/reset | 2 | V1/V2/V3 | App-resettable |
| Uptime Hours | uint16 | Hours | Total runtime | 2 | V1/V2/V3 | Basic longevity |
| Pulse Counter Current | uint32 | Counts | Current pulses for validation | 4 | V2/V3 | Accuracy check (missing in V1) |
| Pulse 10min Interval | uint32 | Counts/10min | Interval pulses | 4 | V2/V3 | Real-time integrity |
| Uptime Minutes | uint8 | Minutes | Detailed time | 1 | V2/V3 | Supplements hours |
| Uptime Seconds | uint8 | Seconds | Precise runtime | 1 | V2/V3 | Full uptime precision |
| Firmware Version | uint16/String | - | e.g., V3.0.1 (major/minor) | 2-4 | V2/V3 | Device identification |
| Battery Level | uint8 | % | 0-100 (if applicable) | 1 | All? | Not always in BLE |
| Packet Type | uint8 | - | 0x40/0x51 headers | 1 | All | Parsing key |
| MAC Address | uint48 | - | Device ID for scanning | 6 | All | Static, required for Python |
Use libraries like bleak for BLE scanning; rd200v2 repo handles parsing (V1 partial, V2/V3 full support). Recommend ESP32 proxy for stability on Raspberry Pi; poll every 10 min, validate via pulses > threshold. Packets: V1 ~20 bytes, V2/V3 ~30+ bytes. Compatible with Home Assistant/ESPHOME.
maybe this also…
All Radoneye RD200 versions (V1, V2, V3.0.1) use standard Bluetooth Low Energy (BLE) with no fundamental differences in connection setup, such as advertising, scanning, or GATT services. Devices advertise continuously with a static MAC address (e.g., identifiable as “FR:R2:SNxxxx” for V1), scanned via tools like bleak in Python or ESPHome; connection is connectionless for notifications after pairing (no complex handshake beyond standard BLE pairing). Data is pushed via notifications on characteristics (e.g., 0x40/0x51 packet types), polled every 10 minutes; no authentication or bonding required for community tools.
No significant variations in BLE connection type (all BLE 4.2+), advertising interval (~1s), or MTU (default 20-23 bytes). Differences lie in payload content and size: V1 packets shorter (~20 bytes, basic fields), V2/V3 extended (~30+ bytes with pulse/uptime details); parsing uses same Little-Endian struct.unpack but offsets shift for V2+. V3.0.1 adds minor protocol stability (e.g., fewer dropped packets at high radon), but identical service/characteristic UUIDs across versions.
Handshake: Identical—scan > connect > enable notifications on data characteristic; no custom handshake or keys; ESP32 proxy recommended for all to avoid Raspberry Pi BLE hangs.
V1: Prone to timeouts on long polls due to simpler firmware; partial rd200v2 support.
V2: Improved reliability, full notifications; handles concurrent app connections better.
V3.0.1: Firmware optimizations reduce reconnects (e.g., bugfixes in high-load), but same procedure.
| Aspect | V1 | V2 | V3.0.1 |
|---|---|---|---|
| Advertising Name | FR:R2:SNxxxx | FR:RU/RE/GI:SNxxxx | Same as V2 |
| Packet Size | ~20 bytes | ~30+ bytes | ~30+ bytes |
| Connection Type | BLE Notifications | BLE Notifications | BLE Notifications |
| Handshake | Standard (no auth) | Standard | Standard |
| Stability/Proxy Need | High (ESP32 req.) | Medium | Medium (optimized) |
| Python Parsing Offsets | Basic (shifted) | Full | Full |