Radiation detector platform

Hi,
would you mind posting the two solutioning elements you mentioned here?

I am evaluating the µRAD here as well and came across this posting (link and core content cited) - please be aware this addresses the uRADMonitor Radon but, radiation sensors might be treated the same way:

JSON output:
http://192.168.1.202/j

{"data": {"id":"1D000XXX","type":"1D","temperature":18.66,"humidity":57.38,"pressure":101355,"radon":84,"uptime":128050} }

SENSORS to create in HASSio:

  - platform: rest
    name: urad_sensors
    resource: http://192.168.1.202/j
    json_attributes:
      - data
    value_template: "OK"
    
  - platform: template
    sensors:
      urad_temperature:
        value_template: "{{ state_attr('sensor.urad_sensors', 'data')['temperature'] }}"
        device_class: temperature
        unit_of_measurement: "°C"
        
      urad_humidity:
        value_template: "{{ state_attr('sensor.urad_sensors', 'data')['humidity'] }}"
        device_class: humidity
        unit_of_measurement: "%"
        
      urad_pressure:
        value_template: "{{ state_attr('sensor.urad_sensors', 'data')['pressure'] }}"
        device_class: pressure
        unit_of_measurement: "P"
       
      urad_radon:
        value_template: "{{ state_attr('sensor.urad_sensors', 'data')['radon'] }}"
        unit_of_measurement: "Bq/m3"
        
 urad_XXXXXX:
        value_template: "{{ state_attr('sensor.urad_sensors', 'data')['XXXXXX'] }}"
        device_class: XXXX # not mandatory, you can comment this line entirely
        unit_of_measurement: "XXX"

I have a station on https://www.uradmonitor.com/ It has a radiation detector and has been active for several years. My station is in Little Rock, AR, USA, but there are many stations around the world. I would love to have an interface for my data to be visible on Home Assistant.

1 Like

There is an API for uradmonitor.com, so you should be able to; unfortunately it looks like you have to login to get to the API, so I can help you with that; but…some of the uradmonitor devices do have local API support, if yours is one then you can pull it all in locally. If you search the forum, there is another discussion on the local API for uradmonitors and that should get you what you need.

Edit: here is your API: URad API. Since you have the only one in Arkansas, you have a model A.

Update and keep alive heartbeat:
As you know, starting from version 2023.12.0, ESPHome has new requirements for Pin Reuse Validation of configuration files. These changes have also covered our GitHub repositories. We have already made the necessary changes to the examples for ESP8266, ESP32, Raspberry Pico W for ESPHome firmware. More details are available here:

BR, Oleksii

Hi all,
I wanted to integration radiation information in my dashboard. I do not have my own geiger machine.
Therefore I have to rely on publicly available information from the nearest data source.
In my case that was a weather station in De Bilt - The Netherlands.

I managed to get readings using home assistant rest configuration.
Thought I would share the used code.

Key was to know which station id to use and the knowledge that there are two values (and therefore two stations id’s). Namely AB (Alpha and Beta radiation), but the more important one was Gamma.

Here is my rest code:

# Radiation Values De Bilt NL1280 Gamma Value
- resource: "https://remap.jrc.ec.europa.eu/api/maps/point?id=NL1280"
  scan_interval: 1800 # check every 30 minutes
  headers:
      Content-Type: application/json
  sensor:
  - name: Radiation Utrecht Gamma Avg
    icon: mdi:radioactive-circle
    unit_of_measurement: nSv/h 
    value_template: >
      {% if value_json.avg == 0 %}
        {{ sensor.radiation_utrecht_gamma_avg }}
      {% else %}
        {{ value_json.avg }}
      {% endif %}
  - name: Radiation Utrecht Gamma Min
    icon: mdi:radioactive-circle
    unit_of_measurement: nSv/h 
    value_template: >
      {% if value_json.min == 0 %}
        {{ sensor.radiation_utrecht_gamma_min }}
      {% else %}
        {{ value_json.min }}
      {% endif %}
  - name: Radiation Utrecht Gamma Max
    icon: mdi:radioactive-circle
    unit_of_measurement: nSv/h 
    value_template: >
      {% if value_json.max == 0 %}
        {{ sensor.radiation_utrecht_gamma_max }}
      {% else %}
        {{ value_json.max }}
      {% endif %}

# Radiation Values De Bilt NL0998 AB Value
- resource: "https://remap.jrc.ec.europa.eu/api/maps/point?id=NL0998"
  scan_interval: 1800 # check every 30 minutes
  headers:
      Content-Type: application/json
  sensor:
  - name: Radiation Utrecht AB Avg
    icon: mdi:radioactive-circle
    unit_of_measurement: nSv/h 
    value_template: >
      {% if value_json.avg == 0 %}
        {{ sensor.radiation_utrecht_ab_avg }}
      {% else %}
        {{ value_json.avg }}
      {% endif %}
  - name: Radiation Utrecht AB Min
    icon: mdi:radioactive-circle
    unit_of_measurement: nSv/h 
    value_template: >
      {% if value_json.min == 0 %}
        {{ sensor.radiation_utrecht_ab_min }}
      {% else %}
        {{ value_json.min }}
      {% endif %}
  - name: Radiation Utrecht AB Max
    icon: mdi:radioactive-circle
    unit_of_measurement: nSv/h 
    value_template: >
      {% if value_json.max == 0 %}
        {{ sensor.radiation_utrecht_ab_max }}
      {% else %}
        {{ value_json.max }}
      {% endif %}

[update: I noticed that last week the rest API reported values of 0 as the API interface was under maintenance. Added this condition and only adding new values if they are not 0 - otherwise use the last known good value]

Happy Coding

2 Likes

Thank you for sharing this example with the community.
Best regards,
Oleksii