Server : Raspberry Pi3
OS: Raspbian
Home Assistant(with Docker)
EnterTALK 내장형
(적용결과)
무더운 여름
제습기, 에어컨, 에어서큘레이터 등 많은 기기의 사용으로
집안의 에너지를 모니터링 해보고 싶은 욕구가 생기어 에너톡을 구매하였다.
(SKT 에너지미터를 먼저 구매했는데 실시간조회가 안되서 현재 분전반에서 썩고있는 중)
에너톡은 아래와 같은 장점이 있다.
1. 실시간 조회가 가능
2. HA에 연결 가능
3. API 공개로 입맞에 맞게 설정 가능
제품의 포장은 심플하다.
설치는 제품 내 설명서를 보고 하면 된다.
(안전을 위해 차단기를 내리고 작업)
일단 에너톡APP에 등록을 먼저 한 후 아래의 과정을 따르면 된다.
1. 에너톡 DEVELOPER 가입하기
홈페이지 : http://developer.enertalk.com
가입을 한 후
http://developer.enertalk.com/my-apps/ 에서 ID와 SECRET의 확인이 필요하다.
(APP 등록이 안되어있으면 Create APP으로 등록을 하면 된다.)
2. 인증코드 얻기(auth code, access token, refresh token)
(파일은 HA설치 폴더 내에 enertalk 폴더안에 넣어주면 된다.)
Client Id와 Client Secret 을 basic_auth.sh 파일안에 입력한다.(CLIENTID, CLIENTSECRET)
Redirect URL 은 본인의 HA 주소를 적어주고 UPDATE URL을 클릭한다.
완료가 되었으면 인증code를 발급받아야한다.
인증코드 발급은 아래링크에서 **id** > client id, **homeassistant.domain:8123** > Redirect URL 으로 바꾸고
크롬 혹은 익스플로러에서 접속을 하면 된다.
>> https://auth.enertalk.com/authorization?client_id=**id**&response_type=code&redirect_uri=http://**homeassistant.domain:8123**
결과
>> http://**homeassistant.domain:8123**/?code=8d76c962919629d6b18e2304a94d3a07e0f13754d51175e77c
?code= 뒤의 인증코드를 basic_auth.sh 파일안에 입력한다.(CODE)
CLIENTID, CLIENTSECRET, CODE 3개를 입력하였으면 라즈베리파이의 터미널에서 basic_auth.sh 를 실행시켜준다.
(추가로 쉘스크립트 파일의 권한설정이 필요하다.)
(sudo chmod 755 /config/enertalk/*.sh)
제대로 하였으면
enertalk 폴더 내에 4개의 파일이 생성된다.
"access_token.txt", "Basic_Auth.txt", "refresh_token.txt", "siteid.txt"
각 파일 안에 오류 메세지가 아닌 코드가 들어있으면 정상적으로 실행이 된것이다.
3. 센서 등록하기
sensor.yaml 파일
# Sensor Enertalk
- platform: command_line
name: enertalk_realtime
command: "/config/enertalk/realtime.sh"
unit_of_measurement: "W"
scan_interval: 2
value_template: '{{ value | multiply(0.001) | round(2) }}'
- platform: command_line
name: enertalk_billing
command: "/config/enertalk/billing.sh"
scan_interval: 60
- platform: file
name: enertalk_yestertoday_usage
file_path: /config/enertalk/billing_yesterday.txt
value_template: '{{ value_json.usage | multiply(0.000001) | round(2) }}'
unit_of_measurement: "kWh"
- platform: file
name: enertalk_yestertoday_charge
file_path: /config/enertalk/billing_yesterday.txt
value_template: '{{ "{:,}".format(value_json["bill"]["usage"]["charge"] | round(0)) }}'
unit_of_measurement: "원"
- platform: file
name: enertalk_today_usage
file_path: /config/enertalk/billing_today.txt
value_template: '{{ value_json.usage | multiply(0.000001) | round(2) }}'
unit_of_measurement: "kWh"
- platform: file
name: enertalk_today_charge
file_path: /config/enertalk/billing_today.txt
value_template: '{{ "{:,}".format(value_json["bill"]["usage"]["charge"] | round(0)) }}'
unit_of_measurement: "원"
- platform: file
name: enertalk_month_usage
file_path: /config/enertalk/billing_month.txt
value_template: '{{ value_json.usage | multiply(0.000001) | round(2) }}'
unit_of_measurement: "kWh"
- platform: file
name: enertalk_month_charge
file_path: /config/enertalk/billing_month.txt
value_template: '{{ "{:,}".format(value_json["bill"]["usage"]["charge"] | round(0)) }}'
unit_of_measurement: "원"
- platform: file
name: enertalk_estimate_usage
file_path: /config/enertalk/billing_estimate.txt
value_template: '{{ value_json.usage | multiply(0.000001) | round(2) }}'
unit_of_measurement: "kWh"
- platform: file
name: enertalk_estimate_charge
file_path: /config/enertalk/billing_estimate.txt
value_template: '{{ "{:,}".format(value_json["bill"]["usage"]["charge"] | round(0)) }}'
unit_of_measurement: "원"
- platform: file
name: enertalk_yestertoday_charge2
file_path: /config/enertalk/billing_yesterday.txt
value_template: '{{ value_json["bill"]["usage"]["charge"] | round(0) }}'
- platform: file
name: enertalk_today_charge2
file_path: /config/enertalk/billing_today.txt
value_template: '{{ value_json["bill"]["usage"]["charge"] | round(0) }}'
- platform: template
sensors:
enertalk_yesterday_usage:
value_template: '{{ (float(states.sensor.enertalk_yestertoday_usage.state) - float(states.sensor.enertalk_today_usage.state)) | round(2) }}'
unit_of_measurement: "kWh"
enertalk_yesterday_charge:
value_template: '{{ "{:,}".format((float(states.sensor.enertalk_yestertoday_charge2.state) - float(states.sensor.enertalk_today_charge2.state)) | round(0)) }}'
unit_of_measurement: "원"
customize.yaml 파일
# Customize Enertalk
sensor.enertalk_realtime:
friendly_name: 실시간 소비전력
icon: mdi:pulse
sensor.enertalk_estimate_charge:
friendly_name: 이번달 예상요금
icon: mdi:currency-krw
sensor.enertalk_estimate_usage:
friendly_name: 이번달 예상사용량
icon: mdi:calendar-question
sensor.enertalk_month_charge:
friendly_name: 누적 요금
icon: mdi:currency-krw
sensor.enertalk_month_usage:
friendly_name: 누적 사용량
icon: mdi:trending-up
sensor.enertalk_today_charge:
friendly_name: 오늘 사용요금
icon: mdi:currency-krw
sensor.enertalk_yesterday_charge:
friendly_name: 어제 요금
icon: mdi:currency-krw
sensor.enertalk_yesterday_usage:
friendly_name: 어제 사용량
icon: mdi:trending-up
sensor.enertalk_today_usage:
friendly_name: 오늘 사용량
icon: mdi:trending-up
groups.yaml 파일
# Group Enertalk
enertalk:
name: "에너지동향"
entities:
- sensor.enertalk_realtime
- sensor.enertalk_today_usage
- sensor.enertalk_today_charge
- sensor.enertalk_yesterday_usage
- sensor.enertalk_yesterday_charge
- sensor.enertalk_month_usage
- sensor.enertalk_month_charge
- sensor.enertalk_estimate_usage
- sensor.enertalk_estimate_charge
4. 적용결과
온습도 센서와 같이 살펴보면 전력량과 온도가 똑같이 움직이는것도 볼 수 있다.
합리적인 가격으로 가정 내 소비전력에 대한 실시간 모니터링이 가능해졌다.
이번달 예상사용량, 요금을 보면서 에너지관리에 신경쓸 수도 있겠지만
쾌적한 여름을 위해서 제습기, 에어컨을 계속 가동하게 되다보니 많은 절약은 되지않는게 함정이다.
이상.
'IT Info > IoT' 카테고리의 다른 글
라즈베리파이에 Home Assistant 설치하기 (2) (7) | 2019.03.03 |
---|---|
라즈베리파이에 Home Assistant 설치하기 (1) (0) | 2018.08.20 |
삼성 시스템에어컨 멀티 Wi-Fi Kit 설치(AIM-H03N) (102) | 2018.08.19 |
(HA) Dashboard 설정기 (0) | 2018.08.06 |
(HA) SONOFF로 도어락 제어하기 (6) | 2018.07.20 |