Home Assistant와 라돈아이(radoneye) 연동하기

2020. 2. 21. 13:02IoT Life

 

 

라돈이란 무엇인가요?

라돈의 위험성은 이전 라돈 침대 파동과 여러 매스컴을 통하여 익히 아실겁니다. 라돈은 기체로 존재하는 방사성 물질로 집안 환기가 제대로 이루어지지 않을 경우 농도가 높아져 폐렴, 폐암으로 발전할 수 있기 때문에 관리가 필요합니다.

라돈을 농도를 낮출려면 어떻게 해야되나요?

집안 라돈 농도를 낮출려면, 환기를 해야합니다. 다른 방법이 없습니다. 하지만 창문을 통해 환기를 하게 되면 안에 난방되어진 따뜻한 온도를 그대로 빼앗기고, 미세먼지도 직방으로 실내에 유입이 되기 때문에 좋은 방법은 아닙니다. 대부분의 아파트는 전열교환기라고 해서 열보상해주는 환기장치가 설치되어 있습니다. 안에 미세먼지 필터도 장착할 수 있어 앞서 창문을 통한 환기에 대한 단점을 극복할 수 있습니다.

라돈 농도를 확인하려면 어떻게 해야되나요?

그렇다면 라돈의 농도는 어떻게 알 수 있을까요? 라돈아이라고 국내 업체가 개발한 측정기가 있습니다.(세계적으로도 유명하다고 들음) 이를 이용하면 실시간으로 라돈이 측정되어 사용자가 확인 할 수 있습니다. 라돈 수치가 4pCi/L(피코큐리라고 읽음)이상부터는 위험 농도라고 합니다. 그러니 4pCi/L이상일 경우 환기를 해야합니다. 라돈아이는 스마트폰과 블루투스로 연동이 가능하여 집안에서 스마트폰으로 라돈 수치를 확인 할 수 있습니다. 라돈아이의 활용은 라돈아이 수치확인 까지입니다. 다른 기기와 연동하여 어떠한 동작(사용자에게 갤홈미니로 위험성을 알려준다거나 전열교환기가 자동으로 켜진다거나)을 할 수는 없지요.

라즈베리파이에 radonreader 설치 및 실행하기

코콤 월패드와 라즈베리파이가 연동된것처럼 라돈아이도 라즈베리파이와 연동이 가능합니다. 라즈베리파이는 bluepy라는 패키지를 이용하여 블루투스 제어가 가능합니다. 아래의 순서대로 설치 후 실행해주세요.

1. bluepy 설치

sudo apt-get update
sudo apt-get install python-pexpect 
sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev 
sudo apt-get install libudev-dev libical-dev libreadline-dev 
sudo pip install bluepy

 

2. Github에서 radonreader 다운로드

sudo git clone https://github.com/ceandre/radonreader


3. 실행하기

python radon_reader.py -a D2:20:C6:A6:15:0F

 

4. 실행결과

pi@raspberrypi4:/home/user/docker/radonreader $ python radon_reader.py -a D2:20:C6:A6:15:0F
2020-02-22 [07:22:04] - D2:20:C6:A6:15:0F - Radon Value: 3.74 pCi/L
pi@raspberrypi4:/home/user/docker/radonreader $ 

라돈 수치가 3.74pCi/L 인것을 확인할 수 있다.

참고로 아래와 같은 옵션들이 있습니다.

usage: radon_reader.py [-h] -a ADDRESS [-b] [-v] [-s] [-m] [-ms MQTT_SRV] [-mp MQTT_PORT] [-mu MQTT_USER] [-mw MQTT_PW] [-ma]

RadonEye RD200 (Bluetooth/BLE) Reader

optional arguments:
-h, --help       show this help message and exit
-a ADDRESS       Bluetooth Address (AA:BB:CC:DD:EE:FF format)
-b, --becquerel  Display radon value in Becquerel (Bq/m^3) unit
-v, --verbose    Verbose mode
-s, --silent     Output only radon value (without unit and timestamp)
-m, --mqtt       Also send radon value to a MQTT server
-ms MQTT_SRV     MQTT server URL or IP address
-mp MQTT_PORT    MQTT server service port (Default: 1883)
-mu MQTT_USER    MQTT server username
-mw MQTT_PW      MQTT server password
-ma              Switch to Home Assistant MQTT output (Default: EmonCMS)

Home Assistant에 radonreader 장치 등록하기

아래와 같이 명령어를 입력하면 MQTT Server로 값을 보내줍니다.

pi@raspberrypi4:/home/user/docker/radonreader $ python radon_reader.py -a D2:20:C6:A6:15:0F -ms 192.168.1.122 -mu kirito -mw 1234 -v -ma -m
Connecting...
Writing...
Reading...
2020-02-22 [09:37:14] - D2:20:C6:A6:15:0F - Radon Value: 3.64 pCi/L
Sending to MQTT...
MQTT Server: 192.168.1.122 | Port: 1883 | Username: kirito | Password: 1234 | Output: Home Assistant
OK

그런데 단발성으로 기존소스로는 MQTT로 데이터를 한번밖에 보내주지 않습니다. 그래서 제가 약간 수정해서 계속 보내도록 했습니다. 
(다운로드는 아래에서^^)

radon_reader.py
0.01MB

def SendMqtt() :
    try:
        GetRadonValue()
        sleep(300) # 이부분에서 몇초 간격으로 값을 가져올지 넣어주시면 됩니다.
    except Exception as e:
        if args.verbose and not args.silent:
             print (e)

        for i in range(1,100):
            try:
                if args.verbose and not args.silent:
                    print ("Failed, trying again (%s)..." % i)
                sleep(5)
                GetRadonValue()
            except Exception as e:
                if args.verbose and not args.silent:
                    print (e)
                if i < 99:
                    continue
                else:
                    print ("Failed.")
            break
            SendMqtt()

while(True):
    SendMqtt()

MQTT에 값이 제대로 오는지 확인을 해줍니다. MAC에서 확인 방법은 'MQTT Explorer' 라는 프로그램으로 확인이 가능합니다.(윈도우는 모르겠습니다.ㅠㅠ)

Home Assistant의 configuration.yaml에 아래와 같이 등록해주면 끝!!

  - platform: mqtt
    name: RadonEye
    state_topic: "environment/RADONEYE/A6-15-0F"
    value_template: "{{ value_json.radonvalue }}"
    unit_of_measurement: 'pCi/L'

그럼 아래와 같이 라돈아이 센서가 표시됩니다. 아릅답지 않습니까?하하하^^ 이제 웹코어랑 연동해서 라돈농도가 높을 시 갤럭시홈미니로 알리는 작업을 실시하겠습니다.

 

라돈농도 알림 받기

HA Connector로 장치를 추가합니다. 마땅한 DTH가 없어서 조도 센서로 선택했습니다. 웹코어에서 불러 들인후 라돈 수치가 4pCi/L이상 일때 갤럭시 홈 미니로 알림을 받도록 피스톤을 추가해줍니다.