RadonEye BLE Interface

A big thank for sharing your code also from me. Works like a charm under hassio / docker on a nuc.

Sometimes I do have data spikes due to a weak bluetooth connection. Will try to deal with that with the HA filter component.

Many thanks (also to all others who shared their knowledge).

Happy :grinning: :grinning: :grinning: to have RadonEYE now integrated in HA.

fregatte

@fregatte
Hi!
I’m glad you managed to solve it.

On my script I consider a exception pikes bigger than 1000, and negative values… Are you getting pikes of what size in pCi/L ?

Hi Carlos,

in my last post I did not explicit mention that it for me works now with the ESP32 component (I just replied to “wettermann” who developed this add. solution).

Your code does unfortunately not work for me, not because of your code but because of my restricted environment “hassio”.

Even under “Appdaemon” the bluetooth hardware is not accessible (I guess that the docker wherein Appdaemon works does not know that there is bluetooth hw on the host).

So the spikes are with the ESP32 solution (for some reason on the monthly sensor).

Thanks to you all!!

fregatte

OMG! This is awesome and exactly what I was looking for, thank you so much for sharing @wettermann!

I’d like to get a second RD200 device and use one ESPHome device to monitor both of them so I’m trying to figure out how to pass in the btle MAC address to the my_custom_sensor.h file (instead of it being hard coded). Unfortunately, c is not my strong suit. :frowning: anyone know how to make that possible?

Thanks,
-Greg

This code keeps the connection open to the sensor. Using the mac-adr from the sensor as parameter you need to change this behaviour.
Alternative: Without understanding the code, the easy (also the hard) way is to double everything MyCustomSensor_1 and MyCustomSensor_2 and so on for every function and all global/static vars. Not so nice but straight forward…
If you go more into the code there are a lot of things you could share instead of double it.

Best Michi

Does anyone know what the puls and puls10 values represent? I’ve enabled them to push to home assistant but it’s just four bytes of data. The comments in the header file don’t seem to explain it very well.

Here’s what mine looks like for the last 30 minutes (since I enabled those):

I was sort of hoping it would represent uptime for the RD200…

Thanks,
-Greg

Guys, I have taken wettermann’s ESPHome code and published it to github: https://github.com/spikeygg/esphome_radoneye_rd200/blob/fe7284d05b19f84446f0bcfb21a45b67d4846dff/radoneye_rd200_sensor.h. I have pulled out the address so it can be passed in but now I’m trying to figure out how to solve the global variable problem.

All the unions, floats and ints defined outside the class get stomped when instantiating the second instance of RadonEye. I don’t know enough about C++ architecture to properly solve this problem.

Anyone know the right way to correct that?

Once we have this working you can use this ESPHome yaml to create a new radon monitor:

  - platform: custom
    lambda: |-
      auto radon1 = new RadonEye("ff:ff:ff:ff:ff:ff");
      App.register_component(radon1);
      return {radon1->radon_10min, radon1->radon_day, radon1->radon_month};
    sensors:
      - name: "Radon1"
        accuracy_decimals: 2
        icon: mdi:radioactive
        unit_of_measurement: pCi/L
      - name: "Radon1 day"
        accuracy_decimals: 2
        icon: mdi:radioactive
        unit_of_measurement: pCi/L
      - name: "Radon1 month"
        accuracy_decimals: 2
        icon: mdi:radioactive
        unit_of_measurement: pCi/L

Thanks,
-Greg

1 Like

Been measuring this for the last month or so and my values were well over the limit so I had a vent installed last week. Here’s the result so far:

I’m glad I found this thread. :smiley:

1 Like

just copy all the variables into the private section of the the RadonEye-class and remove static. I am coming from the early embedded programming world. memory management was bad at that time, so we always used global vars with static…

Best M

private:
   union { char c[4]; uint32_t b; float f; } radonval;
   union { char c[2]; uint16_t b; } pulsval;
   float radonnow;
   float radonday;
   float radonmonth;
   int puls;
   int puls10;
   BLERemoteService* pRemoteService;
   BLERemoteCharacteristic* pRemoteCharacteristic;
   BLERemoteCharacteristic* p2RemoteCharacteristic;
   BLEClient*  pClient;
1 Like

I wanted to drop a line here to thank everyone for the work done in getting the RadonEye connected to Home Assistant. I’ve been wanting a radon sensor for a few months and I came across an article on Reddit about radon sensor they pointed me to this post. Shortly after Amazon had a lightning deal on the RadonEye for $130 that was too good to pass up. I had an extra RPi4 laying around that would be perfect for this project. A few weeks later I finally got around to plugging in the RadonEye and setting it up in the basement. After a few minutes I logged in to the RadonEye app and checked the sensor to see if it was working. It reported 43 pCi/l which seemed high at the time but I couldn’t remember. Once I got on to my computer I checked the EPA recommended limits and was pretty floored. We have an active radon mitigation system in our house that was installed when we bought it 10+ years ago. I went back down to the basement and checked the pressure reading on the radon system and it was not pulling a vacuum which means it likely was an broken radon fan.

Before I could start any repairs I needed accurate data so I began the process of getting the RadonEye in to Home Assistant and logged into InfluxDB with graphing being done by Grafana. It should have only taken me about two hours to get everything operational (I had not finished setting up my long term storage in InfluxDB). It ended up taking me 8 hours or so with 4 of them due to my troubleshooting of my install that all stemmed from me misspelling “environmental”. sigh

The next day I was able to find a local shop that had a radon fan that fit my 4" pipes so another $140 later I had my radon mitigation system completely operational again. I can’t imagine what a local radon company would have charged me to do this repair. When I removed the old fan I found the culprit for it no longer working. It appears that a squirll fell down the exhaust pip and died in the fan. The skull and bones were all still in there. Fun fact, most radon mitigation installers don’t install a simple wire mesh at the top of the stack to prevent debris from entering the exhaust. No idea why. As you can see from the plot below, it’s now at 3.2 and still dropping.

So again, thanks to everyone who’s worked on this project and contributed information to this thread. I had to dive into more details than found in this thread so to help give back to the community I documented the installation process for others to follow.

# Prerequisits on Home Assistant
Install MQTT broker (Mosquitto)
Create new HA user named radon
Add radon user to ACL for Mosquitto at share/mosquitto/accesscontrollist
   user radon
   topic readwrite environment/RADONEYE/#

# Prerequisits on the RPi4
sudo apt-get install git
sudo mkdir /data
sudo chmod 777 /data
cd /data
git clone https://github.com/ceandre/radonreader.git
sudo pip install paho-mqtt
sudo apt-get install python-pip libglib2.0-dev
sudo pip install bluepy

# Find MAC Address of RadonEye
bluetoothctl
--> scan on
Look for something like FR:R20:SN####
--> scan off

# Edit radon_reader.py to lower QoS to 0
vi radon_reader.py

# Back in Home Assistant
Add a new sensor to configuration.yaml
  - platform: mqtt
    name: "Radon Level"
    unique_id: "RadonEyeXXXXXX"  # <-- last three octets of the MAC 
    unit_of_measurement: "pCi/L"
    value_template: "{{ value_json.radonvalue }}"
    force_update: true
    state_topic: "environment/RADONEYE/XX-XX-XX"  # <-- last three octets of the MAC
    expire_after: 1200		# If no response in 20 mins mark the sensor as Unavailible
    icon: mdi:radioactive
    qos: 0

# Run radon_reader.py to check for the readings to come back properly
python /data/radonreader/radon_reader.py -a EF:EE:93:XX:XX:XX -v

# Then push the results via MQTT to HA
python /data/radonreader/radon_reader.py -a EF:EE:93:XX:XX:XX --mqtt -ma -ms 10.0.0.XX -mp 1883 -mu radon -mw XXXXXX -v

# Create a cron tab to have the program run every 5 minutes
crontab -e
*/5 * * * * python /data/radonreader/radon_reader.py -a EF:EE:93:XX:XX:XX --mqtt -ma -ms 10.0.0.XX -mp 1883 -mu radon -mw XXXXXX

# Check log files to make sure CRON is doing its job
grep CRON /var/log/syslog

# If there are no errors in the syslog then you're all done. 
# You can ignore the "No MTA installed" errors. If you want to get rid of them add MAILTO="" at the top of your crontab file.
# Recommend you archive the data from HA using InfluxDB and display with Grafana.
3 Likes

What does this actually measure?

Thanks so much for the writeup. I had to do the following to find my RD200 via btle

sudo hciconfig hci0 up
sudo hcitool lescan

Not sure what I was doing with bluetoothctl but it wasn’t coming up at all with that scan.

Have you guys seen the latest ESPHome release has support for BLE Client — ESPHome and BLE Sensor — ESPHome?? I’ve been trying to get a single ESP32 to hook up to and report data from both my RD200 devices – currently, I’m using two ESP32s with the custom component and it works but I want to replace that with a single ESP32 device that reads both of them.

Tonight, I’ve been trying to get these new components to work but I can’t get my ESP32 to stay connected through WiFi, even with a completely trimmed down ESPHome config yaml (no sensors, just WiFi enabled). :confounded:

It keeps doing this:

INFO Connecting to radon.internal:6053 (172.27.80.33)
INFO Successfully connected to radon.internal
WARNING Disconnected from API: Timeout while waiting for message response!
INFO Connecting to radon.internal:6053 (172.27.80.33)
INFO Successfully connected to radon.internal
WARNING Disconnected from API: Timeout while waiting for message response!
INFO Connecting to radon.internal:6053 (172.27.80.33)
INFO Successfully connected to radon.internal
WARNING Disconnected from API: Timeout while waiting for message response!
INFO Connecting to radon.internal:6053 (172.27.80.33)
INFO Successfully connected to radon.internal
WARNING Disconnected from API: Timeout while waiting for message response!
INFO Connecting to radon.internal:6053 (172.27.80.33)
INFO Successfully connected to radon.internal
WARNING Disconnected from API: Timeout while waiting for message response!

What gives?

EDIT

I tried a different device and it seems to be more stable. I think something may be wrong with that ESP32…?

Ok, I’ve used another (working) ESP32 device and I’ve built up a new file using the ble_client and ble_sensor. However, when I set up the characteristic_uuid’s that the ble_client finds none of them appear to be the values I want. Reviewing the C source code from the custom sensor which works the values seem to be casted from char to float but I’m guessing that the ble_sensor doesn’t do this for us (I can’t find it in the docs anywhere).

Anyone know how to make this work?

Here’s my current config file:

substitutions:
  node_name: radon
  friendly_name: Radon
  board: esp32doit-devkit-v1
  log_level: DEBUG
  library_priority: '1'
  garage_priority: '0'

esphome:
  name: ${node_name}
  platform: ESP32
  board: ${board}
  
  build_path: ./build/${node_name}

captive_portal:

logger:
  level: ${log_level}

api:
  password: ${node_name}

ota:
  password: ${node_name}

packages:
  wifi: !include common/wifi.yaml
  # device_base: !include common/device_base_esp32.yaml

esp32_ble_tracker:

ble_client:
  - mac_address: FF:FF:FF:FF:FF:FF
    id: radon2
    on_connect:
      then:
        - lambda: |-
            ESP_LOGD("ble_client_lambda", "Connected to radon2 BLE device");
    on_disconnect:
      then:
        - lambda: |-
            ESP_LOGD("ble_client_lambda", "Disconnected from radon2 BLE device");

sensor:
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_big24"
    service_uuid: '00001523-1212-EFDE-1523-785FEABCD123'
    characteristic_uuid: '00001524-1212-EFDE-1523-785FEABCD123'
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_big25"
    service_uuid: '00001523-1212-EFDE-1523-785FEABCD123'
    characteristic_uuid: '00001525-1212-EFDE-1523-785FEABCD123'
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_big26"
    service_uuid: '00001523-1212-EFDE-1523-785FEABCD123'
    characteristic_uuid: '00001526-1212-EFDE-1523-785FEABCD123'
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_1800_2a00"
    service_uuid: '1800'
    characteristic_uuid: '2a00'
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_1800_2a01"
    service_uuid: '1800'
    characteristic_uuid: '2a01'
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_1800_2a04"
    service_uuid: '1800'
    characteristic_uuid: '2a04'
  - platform: ble_client
    ble_client_id: radon2
    name: "Radon2_180a_2a29"
    service_uuid: '180a'
    characteristic_uuid: '2a29'

Here is what the log file looks like when it connects and starts spewing results:

[10:52:12][W][ble_sensor:110]: [Radon2_1800_2a01] Cannot poll, not connected
[10:52:12][W][ble_sensor:110]: [Radon2_1800_2a04] Cannot poll, not connected
[10:52:16][W][ble_sensor:110]: [Radon2_1800_2a00] Cannot poll, not connected
[10:52:17][W][ble_sensor:039]: [Radon2_big24] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_big24': Sending state nan  with 0 decimals of accuracy
[10:52:17][W][ble_sensor:039]: [Radon2_big25] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_big25': Sending state nan  with 0 decimals of accuracy
[10:52:17][W][ble_sensor:039]: [Radon2_big26] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_big26': Sending state nan  with 0 decimals of accuracy
[10:52:17][W][ble_sensor:039]: [Radon2_1800_2a00] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_1800_2a00': Sending state nan  with 0 decimals of accuracy
[10:52:17][W][ble_sensor:039]: [Radon2_1800_2a01] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_1800_2a01': Sending state nan  with 0 decimals of accuracy
[10:52:17][W][ble_sensor:039]: [Radon2_1800_2a04] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_1800_2a04': Sending state nan  with 0 decimals of accuracy
[10:52:17][W][ble_sensor:039]: [Radon2_180a_2a29] Disconnected!
[10:52:17][D][sensor:099]: 'Radon2_180a_2a29': Sending state nan  with 0 decimals of accuracy
[10:52:17][D][ble_client_lambda:053]: Disconnected from radon2 BLE device
[10:52:17][W][ble_client:115]: connect to ff:ff:ff:ff:ff:ff failed, status=133
[10:52:17][D][esp32_ble_tracker:180]: Starting scan...
[10:52:18][D][ble_client:045]: Found device at MAC address [FF:FF:FF:FF:FF:FF]
[10:52:18][I][ble_client:083]: Attempting BLE connection to ff:ff:ff:ff:ff:ff
[10:52:18][I][ble_sensor:033]: [Radon2_big24] Connected successfully!
[10:52:18][I][ble_sensor:033]: [Radon2_big25] Connected successfully!
[10:52:18][I][ble_sensor:033]: [Radon2_big26] Connected successfully!
[10:52:18][I][ble_sensor:033]: [Radon2_1800_2a00] Connected successfully!
[10:52:18][I][ble_sensor:033]: [Radon2_1800_2a01] Connected successfully!
[10:52:18][I][ble_sensor:033]: [Radon2_1800_2a04] Connected successfully!
[10:52:18][I][ble_sensor:033]: [Radon2_180a_2a29] Connected successfully!
[10:52:18][D][ble_client_lambda:049]: Connected to radon2 BLE device
[10:52:19][I][ble_client:159]: Service UUID: 0x1800
[10:52:19][I][ble_client:160]:   start_handle: 0x1  end_handle: 0x7
[10:52:19][I][ble_client:339]:  characteristic 0x2A00, handle 0x3, properties 0xa
[10:52:19][I][ble_client:339]:  characteristic 0x2A01, handle 0x5, properties 0x2
[10:52:19][I][ble_client:339]:  characteristic 0x2A04, handle 0x7, properties 0x2
[10:52:19][I][ble_client:159]: Service UUID: 0x1801
[10:52:19][I][ble_client:160]:   start_handle: 0x8  end_handle: 0x8
[10:52:19][I][ble_client:159]: Service UUID: 000015231212EF-DE15-2378-5FEA-BCD123
[10:52:19][I][ble_client:160]:   start_handle: 0x9  end_handle: 0x11
[10:52:19][I][ble_client:339]:  characteristic 000015241212EF-DE15-2378-5FEA-BCD123, handle 0xb, properties 0xa
[10:52:19][I][ble_client:339]:  characteristic 000015251212EF-DE15-2378-5FEA-BCD123, handle 0xd, properties 0x12
[10:52:19][I][ble_client:339]:  characteristic 000015261212EF-DE15-2378-5FEA-BCD123, handle 0x10, properties 0x12
[10:52:19][I][ble_client:159]: Service UUID: 0x180A
[10:52:19][I][ble_client:160]:   start_handle: 0x12  end_handle: 0xffff
[10:52:19][I][ble_client:339]:  characteristic 0x2A29, handle 0x14, properties 0x2
[10:52:19][D][esp32_ble_tracker:180]: Starting scan...
[10:52:21][D][esp32_ble_tracker:620]: Found device E8:99:43:2E:84:99 RSSI=-87
[10:52:21][D][esp32_ble_tracker:641]:   Address Type: RANDOM
[10:52:21][D][esp32_ble_tracker:643]:   Name: 'N007U'
[10:52:21][D][esp32_ble_tracker:620]: Found device C0:9A:08:AC:93:5F RSSI=-69
[10:52:22][D][esp32_ble_tracker:641]:   Address Type: RANDOM
[10:52:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:52:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:52:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:52:36][D][sensor:099]: 'Radon2_big26': Sending state 0.00000  with 0 decimals of accuracy
[10:53:12][D][sensor:099]: 'Radon2_1800_2a01': Sending state 0.00000  with 0 decimals of accuracy
[10:53:12][D][sensor:099]: 'Radon2_1800_2a04': Sending state 6.00000  with 0 decimals of accuracy
[10:53:16][D][sensor:099]: 'Radon2_1800_2a00': Sending state 70.00000  with 0 decimals of accuracy
[10:53:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:53:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:53:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:53:36][D][sensor:099]: 'Radon2_big26': Sending state 0.00000  with 0 decimals of accuracy
[10:54:12][D][sensor:099]: 'Radon2_1800_2a01': Sending state 0.00000  with 0 decimals of accuracy
[10:54:12][D][sensor:099]: 'Radon2_1800_2a04': Sending state 6.00000  with 0 decimals of accuracy
[10:54:16][D][sensor:099]: 'Radon2_1800_2a00': Sending state 70.00000  with 0 decimals of accuracy
[10:54:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:54:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:54:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:54:36][D][sensor:099]: 'Radon2_big26': Sending state 0.00000  with 0 decimals of accuracy
[10:55:12][D][sensor:099]: 'Radon2_1800_2a01': Sending state 0.00000  with 0 decimals of accuracy
[10:55:12][D][sensor:099]: 'Radon2_1800_2a04': Sending state 6.00000  with 0 decimals of accuracy
[10:55:16][D][sensor:099]: 'Radon2_1800_2a00': Sending state 70.00000  with 0 decimals of accuracy
[10:55:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:55:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:55:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:55:36][D][sensor:099]: 'Radon2_big26': Sending state 0.00000  with 0 decimals of accuracy
[10:56:12][D][sensor:099]: 'Radon2_1800_2a01': Sending state 0.00000  with 0 decimals of accuracy
[10:56:12][D][sensor:099]: 'Radon2_1800_2a04': Sending state 6.00000  with 0 decimals of accuracy
[10:56:17][D][sensor:099]: 'Radon2_1800_2a00': Sending state 70.00000  with 0 decimals of accuracy
[10:56:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:56:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:56:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:56:36][D][sensor:099]: 'Radon2_big26': Sending state 0.00000  with 0 decimals of accuracy
[10:56:40][I][ota:046]: Boot seems successful, resetting boot loop counter.
[10:57:12][D][sensor:099]: 'Radon2_1800_2a01': Sending state 0.00000  with 0 decimals of accuracy
[10:57:12][D][sensor:099]: 'Radon2_1800_2a04': Sending state 172.00000  with 0 decimals of accuracy
[10:57:16][D][sensor:099]: 'Radon2_1800_2a00': Sending state 70.00000  with 0 decimals of accuracy
[10:57:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:57:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:57:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:57:36][D][sensor:099]: 'Radon2_big26': Sending state 120.00000  with 0 decimals of accuracy
[10:58:12][D][sensor:099]: 'Radon2_1800_2a01': Sending state 0.00000  with 0 decimals of accuracy
[10:58:12][D][sensor:099]: 'Radon2_1800_2a04': Sending state 6.00000  with 0 decimals of accuracy
[10:58:17][D][sensor:099]: 'Radon2_1800_2a00': Sending state 70.00000  with 0 decimals of accuracy
[10:58:26][D][sensor:099]: 'Radon2_180a_2a29': Sending state 70.00000  with 0 decimals of accuracy
[10:58:27][D][sensor:099]: 'Radon2_big25': Sending state 80.00000  with 0 decimals of accuracy
[10:58:36][D][sensor:099]: 'Radon2_big24': Sending state 80.00000  with 0 decimals of accuracy
[10:58:36][D][sensor:099]: 'Radon2_big26': Sending state 0.00000  with 0 decimals of accuracy

The values that are dumped by the sensors don’t seem to contain enough information to represent the float values I’d expect. I’m thinking that either big26 or 1800_2a01 are the monthly value because that value is blank at the moment, the other two are in the 1.5-2.0 range. With values like 80, 120, 70, it seems I have too little info to build up an accurate float. :disappointed:

I’m having that same problem. My ESP32 seems quite warm. I’m trying via this project: GitHub - BrewNinja/RadonEye-ESP32

Maybe @BrewNinja can help us too.

From some experiments, it seems like the problem revolves around gracefully retrying / sleeping when the ESP32 cannot find the MAC of the RD200 or pull data from the RD200.

I’ve confirmed the ESP32 is good (by removing the radon scanning code and using just plain BLE scanning), I’ve noticed the ESP32 doesn’t get as hot when I put a cloned BLE device missing the BLEUUID (but still unusually warm). No RD200 in range it gets very hot and the ESP locks up.

Has anyone tried to use this with the new radon detection device from RadonEye called the EcoCube (Amazon)?

It wont work. The cube is wifi connected, not bluetooth, so it probably has a locked down or non-existant API. Even the bluetooth version is technically not supported, its just they didnt lock it out.

1 Like

Thanks @BrewNinja !

I just upgraded to ESPHome latest version 2021.10.3 and decided to do the “upgrade all” on my devices. When it got to the Radon custom devices, it failed with this:

INFO Reading configuration /config/esphome/radon1.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing radon1 (board: nodemcu-32s; framework: arduino; platform: espressif32 @ 3.3.2)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
Dependency Graph
|-- <AsyncTCP-esphome> 1.2.2
|-- <WiFi> 1.0
|-- <FS> 1.0
|-- <Update> 1.0
|-- <ESPAsyncWebServer-esphome> 2.0.0
|   |-- <AsyncTCP-esphome> 1.2.2
|-- <DNSServer> 1.1.0
|-- <ESPmDNS> 1.0
Compiling /data/radon1/.pioenvs/radon1/src/main.cpp.o
Archiving /data/radon1/.pioenvs/radon1/lib32a/libAsyncTCP-esphome.a
In file included from src/main.cpp:38:0:
src/radoneye_rd200_sensor.h:2:23: fatal error: BLEDevice.h: No such file or directory

*******************************************************************
* Looking for BLEDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:BLEDevice.h"
* Web  > https://platformio.org/lib/search?query=header:BLEDevice.h
*
*******************************************************************

compilation terminated.
Compiling /data/radon1/.pioenvs/radon1/lib64d/WiFi/ETH.cpp.o
Compiling /data/radon1/.pioenvs/radon1/lib64d/WiFi/WiFi.cpp.o
Compiling /data/radon1/.pioenvs/radon1/lib64d/WiFi/WiFiAP.cpp.o
Compiling /data/radon1/.pioenvs/radon1/lib64d/WiFi/WiFiClient.cpp.o
Compiling /data/radon1/.pioenvs/radon1/lib64d/WiFi/WiFiGeneric.cpp.o
Compiling /data/radon1/.pioenvs/radon1/lib64d/WiFi/WiFiMulti.cpp.o
*** [/data/radon1/.pioenvs/radon1/src/main.cpp.o] Error 1
========================== [FAILED] Took 1.79 seconds ==========================

Looking through the ESPHome source code I can’t find any references to that BLEDevice.h but I noticed the note in the error that says I can check platformio.org so I looked there and I can see it here: A professional collaborative platform for embedded development · PlatformIO but I don’t know how to get that library installed on my HassIO ESPHome installation.

Anyone know how to revive this build?

Thanks,
-Greg

1 Like