기본 콘텐츠로 건너뛰기

지역난방 유량계 ESP로 원격 검침하기

지역난방으로 난방을 하는 집의 가장 불만사항은 내가 얼마나 난방을 했는지 알아내려면 싱크대를 열어서 유량계를 들여다보던지.. 아니면 춥디 추운 바깥에 나가서 매번 원격 검침기의 숫자를 확인해야하는 겁니다.

싱크대 안에 있는 유량계는 아날로그 식이라서 정확한 값을 알아내려면 어쨌든 나가야 합니다.

이게 너무 너무 귀찮아서.. HA를 구축한 김에 저도 원격 검침 해보고 싶었습니다.

그래서 구현해봤습니다. 이 방법은 네이버 모 카페의 어떤 분이 알려주신 방법입니다.

우선 준비물이 있어야겠지요.

제가 구매한 물품은 아래와 같습니다. 저는 납땜 없이 할 수 있도록 구성했습니다.


우선 ESP32 보드

https://www.11st.co.kr/products/3411825790?&xfrom=&xzone=


그 다음에 유량계와 ESP32를 편하게 연동하기 위한 터미널 블록 2P 2개

https://www.11st.co.kr/products/1953440276?&xfrom=&xzone=


그리고 ESP32를 고정할 보드가 필요한데.. 개인적으로 미니 빵판은 권장해드리지 않습니다. ESP32가 생각보다 커서 미니 빵판 하나 크기입니다. 그래서 미니 빵판을 구매하실거면 3개를 구매하시길 권장해드립니다.

아니면 좀 큼지막한 모드 하나 구매하시길 권합니다.


그리고 터미널과 ESP32를 연결할 점퍼케이블이 있어야 하는데.. 저는 그냥 넉넉하게 샀습니다.

https://www.11st.co.kr/products/1946216907?&xfrom=&xzone=


그 다음에 외부 검침기로 값을 보내기 위한 릴레이가 필요합니다.

http://www.funnykit.co.kr/shop/goods/goods_view.php?inflow=naverCheckout&goodsno=9159


자 이제.. 준비물이 모두 모였다면.. 원기옥이 아니라... 조립을 해야겠죠..


우선 HA의 애드온에서 ESPHOME을 설치해주시면 됩니다.

다음에 웹 UI를 여신 다음에 + 버튼을 눌러서 새로운 구성을 등록해주셔야 하는데.. 이름을 잘 결정하시기 바랍니다. 뭐.. 큰 문제는 없지만 나중에 바꾸시려면 ESP를 다시 컴에 연결해서 플래싱을 해야하기 때문에 무지 귀찮습니다.

아.. 그리고 저는 윈도우에서 버추얼박스로 HA를 구동시키고 있기 때문에 이걸 기준으로 설명을 드리겠습니다. 도커나 다른건 관련 자료를 검색해보시기 바랍니다.

이름을 넣고.. 연결할 와이파이의 SSID와 패스워드를 입력해서 구성을 하나 추가합니다.

와이파이는 당연히 2.5GHz를 입력하셔야 합니다.

구성이 추가되었다면 EDIT를 선택하신 다음에 아래 코드를 입력해주시기 바랍니다.


esphome:

  name: boiler-usage

  platform: ESP32

  board: esp32dev

  

preferences: 

  flash_write_interval: 60min

  

logger:


api:  // 나중에 HA의 개발자옵션에서 서비스로 boiler_meter_calibration 을 불러와서 원하는 값으로 글로벌 값을 수정할 수 있습니다.

  services:

    - service: boiler_meter_calibration

      variables:

        meter_counter: float

      then:

        - globals.set:

            id: boiler_meter

            value: !lambda |-

              return id(boiler_meter) = meter_counter;

        - sensor.template.publish:

            id: boiler_remote_meter

            state: !lambda 'return id(boiler_meter);'


ota:

  password: !secret ota_pwd


wifi:

  ssid: !secret main_ap_ssid

  password: !secret main_ap_pwd


  ap:

    ssid: "home hub" // 원하시는 다름 입력하셔도 됩니다.

    password: !secret fallback_ap_pwd


captive_portal:


globals: 

  - id: boiler_meter

    type: float

    restore_value: yes            

    initial_value: '884.59'   //처음에는 그냥 0.0 넣으시고 boiler_meter_calibration 로 나중에 HA에서 글로벌 값을 수정해주시면 됩니다.


binary_sensor:

  - platform: gpio

    name: hot water 10liter pulse      

    pin:

      number: GPIO21

      mode: INPUT_PULLUP

      inverted: true

    filters:

      - delayed_on_off: 50ms       

    on_press:                                           

      then:

        - lambda: |-

            id(boiler_meter) += 0.01;  //그럴일은 없겠지만.. 만약에 유량계의 미터가 소수점 3자리라면 0.01로 고치시면 됩니다.       

        - sensor.template.publish:                    

           id: boiler_remote_meter

           state: !lambda |-

              return id(boiler_meter);        

        - switch.turn_on: boiler_remote_meter_relay_switch       

        - delay: 3s

        - switch.turn_off: boiler_remote_meter_relay_switch

  - platform: status

    name: "Boiler Meter Status"


interval:     

  - interval: 1min                                   

    then:

      - sensor.template.publish: 

          id: boiler_remote_meter

          state: !lambda |-

            return id(boiler_meter);     

            

switch:                                     

  - platform: gpio

    pin: GPIO23

    id: boiler_remote_meter_relay_switch

    name: "Boiler Meter Relay Switch"


sensor:                                  

  - platform: template

    name: Boiler remote meter

    id: boiler_remote_meter

    icon: mdi:counter

    unit_of_measurement: "m³"

    device_class: "gas"

    state_class: "total_increasing"

    accuracy_decimals: 2 // 그럴일은 없겠지만.. 만약에 유량계의 미터가 소수점 3자리라면 3으로 고치시면 됩니다.


코드를 입력하시고 SAVE 를 눌러 저장을 합니다.


그리고 INSTALL을 눌러줍니다. INSTALL 전에 등록한 기기의 Validate를 눌러서 코드에 문제가 없는지 검사하시는 것도 좋은 선택입니다.


ESP32를 등록하고 나면 Wirelessly로 플래싱을 할 수 있지만 지금은 등록이 되어 있지 않으므로 Manual download를 선택해 줍니다. 그러면 등록한 이름.bin 파일이 다운로드 폴더에 저장이 될겁니다.

이제 이 파일을 ESP에 플래싱을 해줘야 합니다.

https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

에서 드라이버를 받으신 후에 ESP를 컴퓨터에 연결해서 드라이버를 설치해주시면 COM포트에 ESP가 인식이 될것입니다.

그 상태에서 아마 2개의 LED가 깜박이고 있으실 텐데.. BOOT 버튼을 꾸욱 눌러주시면 한쪽 LED가 꺼지면서 플래싱 모드로 변경됩니다.

그러면 https://www.espressif.com/en/support/download/other-tools 에서 Flash Download Tools을 받으셔서 아까 다운로드 받은 파일을 ESP에 플래싱을 해주시면 끝입니다. 프로그램 사용법은 너무 단순해서 생략하겠습니다.

그러면 플래싱한 ESP를 HA가 인식을 하고 등록을 권유하면 등록해주시면 됩니다.

이제 등록한 ESP와 유량계를 연결해보겠습니다.


연결은 아래처럼

해주시면 됩니다.


유량계에서 나오는 전선을 보시면 2가닥입니다. 유량계에서 나오는 전선과 원격 검침기로 나가는 전선의 연결 색상을 기억하시고 위 사진에서 1과 2의 들어오고 나오는 부분을 동일하게 연결해주시면 됩니다. 예를 들어 원격 검침기에서 나가는 전선의 검은색에 원격 검침기의 노란색이 연결되어 있었다면 1번 들어가는 곳에 검은색, 1번 나가는 곳에 노란색을 연결해주시면 됩니다.


1번 전선을 ESP의 GND에 연결하신 다음에 거기서 나오는 전선을 릴레이의 글자가 제대로 보이도록 부착했을 때(제가 위 사진의 릴레이에 KU로 표시해 두었습니다.) 오른쪽 아래에 연결합니다. 릴레이의 핀이 총 4개인데.. 제가 위 사진에 연결해야 하는 핀을 표시해 놓았으니 참조하시 바랍니다. 오른쪽 아래로 들어간 전선 위쪽에서 전선이 나와서 그 부분이 원격 검침기로 나가는 전선으로 연결하시면 됩니다.


2번 전선은 21번으로 들어가서 23번으로 나온 다음에 릴레이 스위치의 왼쪽 아래로 들어가서 왼쪽 위로 나와서 외부 검침기로 연결해 주시면 됩니다.

모두 제대로 연결이 되었다면 난방을 틀어 내부 검침기의 숫자가 HA에 들어오고 그 숫자만큼 외부 원격 검침기 숫자가 변경되는지 확인해 보시고.. 이상이 없다면

개발자 옵션의 서비스에 가셔서 boiler_meter_calibration 서비스를 선택하신 다음에 외부 검침기의 숫자를 입력해서 초기값을 설정해주시면 됩니다.


다음에 HA의 에너지에서 가스에 센서를 등록하시면 되고 필요하시다면 일별, 월별 유틸리티 미터를 만드시면 일별, 월별 사용량도 보실수 있습니다.


utility:

  daily_gas:

    source: sensor.boiler_remote_meter

    name: 난방 사용량

    cycle: daily

  monthly_gas:

    source: sensor.boiler_remote_meter

    name: 월간 난방 사용량

    cycle: monthly


최대한 상세하게 작성한다고 했지만... 부족한 부분이 있다면 댓글 남겨주시면 제가 아는 선에서 답변을 드리도록 하겠습니다.


그런데, 막상 설치를 하고 나니.. 이거.. 나중에 원격 검침기 교체할 때 원복하는 것도 귀찮네요.. 와고 하나 사다놓든지 해야겠네요..

-----

좀 더 자세한 설정 방법을 원하시면 https://siytek.com/add-esphome-to-home-assistant/ 을 참고하시기 바랍니다. 저도 처음에 이 내용을 보고 따라했습니다.

댓글

이 블로그의 인기 게시물

쿠첸 스마트터치밥솥TOP(10인용) CJH-PD1000iCM 사용기(체험 후기)

2008년 아내를 만나 결혼을 하고.. 자식 셋이 딸린 애아빠가 되어버린 지난 7년 동안.. 머.. 다들 아시겠지만.. 참 못난 아빠로 살고 있습니다. 어느새 7년이 되었네요.. 첫째가 내년이면 초등학교에 들어가니.. 짧지 않은 세월인것 같습니다. 지난 7년동안 애 키우느라 고생만 아내에게 뭐 하나 잘 해준게 없는데.. 아직 철이 덜 들어서 여전히 잘 못해주네요.. 아내가 결혼하면서 가져온 전자 밥솥은 재작년에 수명을 다했는지.. 밥이 제대로 안되어서 한 2년 정도 압력 밭솥에 밥을 해먹었습니다. 한국인은.. 밥심이죠.. 밥을 하려면 솥이 필요한데.. 머.. 냄비에 해먹는 방법도 있지만.. 그건 음.. 귀찮고 힘들고.. 현실에서 밥솥하면 크게 2가지죠.. 압력 밥솥 아니면.. 전자 밥솥.. 압력 밥솥하면.. 풍년이죠.. 아닌가요? 압력 밥솥은 다른건 다 좋은데.. 닦기가 귀찮고(냄비보다는 뭐.. 쉽습니다만..) 밥을 보온으로 하면 금방 말라비틀어지는.. 물론 누룽지를 만들 수 있다는 장점 아닌 장점이.. 전자 밥솥은 저 어릴때는 너도나도 코끼리 밥통이었는데.. 어느샌가... 쿠쿠라는 브랜드와 쿠첸이라는 브랜드의 2강 체제로 바뀌었더군요.. 쿠쿠와 쿠첸이라면.. 밥통계의 삼성과 LG 정도라고 할까요? 주변에 물어보면 대체로 쿠쿠를 추천하더군요.. 아내가 결혼할 때 가져온 밥통도 쿠쿠였습니다. 대략 이렇게 생긴 녀석이죠. 그러다가 이 녀석이 밥을 제대로 하지를 못하야.. 밥통 하나 새로 사준다면서.. 먼넘의 밥통들이 그렇게 비싼 것인지... 그리고 쿠쿠나 쿠첸이나.. 홈페이지에 들어가보면 정말 수십개의 밥통이 있는데.. 도데체가 각각의 밥통 간의 차이가 무엇이고 무엇이 좋고 무엇이 나쁜건지 비교도 할 수 없고.. 설명도 제대로 안되어 있고 제품 겉이나 안을 제대로 볼 수 있는 사진조차 없는 사용성은 개나 줘버린 그런 구조인지라.. 선택 장애를 일으켜서 결국은 압력 밥솥에 밥을 해먹어가며 밥통 하...

더 넥스트 스파크 2주 운행 후기

근 한달만에 블로그에 글을 씁니다. 이번 글은 지름 자랑기입니다. 네..딱 2주 전에 더 넥스트 스파크를 구입했습니다.. 옛날 스파크를 딱히 팔 마음은 없었는데... 애가 셋이 되다 보니 뒷좌석에 가운데 좌석이 2점 벨트라서 신경도 쓰이고... 아내가 수동을 운전하기 너무 힘들어하기도하고.. 이런 저런 이유로 과감하게 옛날 스파크를 팔아치우고 전격적으로 또 다시 스파크를.. 애 셋 있는 집이 트랙스나 올란도 같은 차를 사야지.. 왜 또 스파크냐고 물으신다면.. ㅠㅠ 아시면서.. 그런건 물어보시는거 아닙니다. ㅠㅠ 어쨌든 지르는거.. 가장 비싼 Eco LTZ으로 질렀습니다. 옵션 다 밀어 넣으니 1610만냥이더군요.. 쿨럭 쿨럭.. 이 돈이면 액센트도 살 수 있겠지만.. 현대/기아 차는... 목숨 걸어가며 타고 싶은 마음은 전혀 없는지라.. 익히 아시다시피 경차 주제에 웬간한건 다 들어 있습니다. 경사로 밀림 방지장치, 전방 충돌 경고 시스템, 차선 이탈 경고 시스템, 크루즈 컨트롤, 애플 카플레이 시스템, 톨게이트 자동 결제 시스템, 스톱 & 스타트, TPMS, 사각지대 경고 시스템 등등... 뭐.. 대충 비싼 값어치는 합니다만.. 사실 좀 따져보면 법이 바뀌어서 몇몇 기능은 무조건 들어가야하는 건데.. 한 4년만에 차를 사보니 정말 기술의 발전이 느껴질 만큼 경차 치고는 좀 풍성한 옵션을 자랑합니다. 모닝하고는 비교가 되는지는 잘 모르겠지만서도... 그래서 2주동안 탄 소감입니다. 1. 옛날 스파크와 비교했을 떄 내부와 트렁크가 아주 조금 넓습니다. 실제로 이전 스파크의 축거가 2,375이고 더 넥스트 스파크는 2,385 입니다. 숫자로 비교해보면 큰 차이는 없지만 실제 탑승해보고 짐을 넣어보면 아주 미세하게 조금 더 넓습니다. 그런데 막상 앉아보면 좀 갑갑합니다. 이것 저것 넣어보고 앉으면 분명 넓긴하데 심리적으로는 좁습니다. 이유가 전고 즉, 차 높이가 낮습니다. 이전 스파...

스위치봇 & 스위치봇 허브 미니 간단 사용기

제 블로그에 예전부터 오셨던 분들은 제가 사브작 사브작 홈 오토메이션을 어설프게 해온 것을 아실겁니다. 작년부터 너무 하고 싶었던 도어락 자동화에 도전해봤습니다. 우리 나라에 자체 서비스로 앱을 통해 도어락을 제어하는 제품은 꽤 있습니다. 게이트맨도 있고, 키위도 있고, 삼성도 있죠.. 그런데.. 전 그것보다 구글 어시스턴트를 지원하는 도어락이 필요했는데... 그런건 안만들더라구요.. 꼭 필요한건 아니지만 웬지 해보고 싶은데... 언제 제품이 출시될지도 몰라서.. 가능한 방법을 찾아보다가.. 스위치봇이라는 제품으로 도어락을 버튼을 꾹 누르는 방법을 찾아서 스위치봇이 직구가 아닌 국내에 출시되었길래 낼름 구매해서 도전해봤습니다. 스위치봇 제품에 대한 내용이나 구매는  https://www.wakers.shop/  에서 하시면 됩니다. 저는 스위치봇에 스위치봇을 구글 홈에 연결시키기 위해 스위치봇 허브 미니까지 구매했습니다. 스위치봇 허브 미니가 없으면 스위치봇을 외부에서 제어하거나 구글 홈에 연결할 수 없습니다. 그리고 제가 스위치봇 허브 미니를 구매한 이유 중 다른 하나는 이 제품이 RF 리모컨 기능이 지원됩니다. 집에 있는 모니터를 제어할 필요가 있어서 이참 저참으로 같이 구매했습니다. 제품 등록은 어렵지 않습니다. 여기서는 스위치봇 허브 미니에 RF 리모컨을 등록해서 구글 어시스턴트로 제어하는 방법을 소개해드릴까 합니다. 제가 스위치봇 허브 미니로 모니터를 제어하고 싶었던 부분은 컴퓨터에서 크롬캐스트로 외부 입력을 때에 따라 바꿔야 하는데.. 그때마다 리모컨을 찾는게 너무 불편해서였습니다.  어차피 리모컨은 외부 입력 바꿀 때 빼고는 쓸 일도 없는지라.. 매번 어디로 사라지면 정말 불편해서 이걸 자동화 하고 싶었습니다. 그런데, 처음에 스위치봇 허브 미니를 등록하고 여기에 리모컨을 등록하니.. 구글 홈에 등록된 리모컨이 자동으로 등록이 됩니다. 그런데, 등록된걸 확인해보니 전원 On/Off만 제어되는 것이고, 나머지 버튼은 구글 홈...