본문 바로가기

홈어시스턴트 IoT

홈오토메이션 Home Assistant 7인치 LCD화면 및 간략한 설명

부모님 집 거실에 있는 TV 옆 스피커 위에는 7인치 라즈베리파이 LCD 모니터를 올려 놓았습니다.(관련글 https://imky.tistory.com/17)  

 

7인치 모니터를 통해 홈 어시스턴트(오픈 소스 홈 오토메이션 서버로 보통 라즈베리파이에서 구동되고 Odroid나 Synology 등 다양한 플랫폼이나 OS에서도 실행이 가능)의 현재 상태를 한 눈에 볼 수 있습니다. 

 

7인치 모니터의 홈어시스턴트 기본 화면

화면에 표시하는 정보는 다음과 같습니다. 

  • 음력 날짜 정보(HACS를 통해 lunar_date로 추가) 
  • data.go.kr의 API로 받아오는 외부 미세먼지 수치 
  • Aqara 및 Xiomi의 Bluetooth 온도계로부터 받아오는 거실, 개집의 온도 
  • 전기 팬히터 작동 시간은 PTC 히터를 가동한 시간을 표시
  • 실내 미세먼지 및 실내 이산화탄소는 DIY로 제작한 ESPHome기반 보드로부터 수신한 정보(관련글 http://imky.egloos.com/3289812) 
  • 외부에 설치한 Wyze v2 카메라 화면 
  • 별도의 RPi 장치에 설치한 Volumio 클래식FM 라디오(관련글 http://imky.egloos.com/3291664)  
  • 주방 후드에 IoT 플러그로 설치한 팬 전원 
  • 보리 짖을 때 초음파 발생시...는 역시 DIY로 만든 강아지 초음파 훈련기의 릴레이를 제어(관련글 http://imky.egloos.com/3290923)  
  • 구글 네스트(Nest) 난방 온도 조절기 제어

음성으로 표현하는 주요 기능은 다음과 같습니다. (관련글 https://imky.tistory.com/30

  • 거실에 있는 Google Cast를 지원하는 레노보 스마트 디스플레이 스피커를 통해서, 매 시각마다 네이버에서 제공하는 날씨를 음성으로 안내해 줍니다. 
  • 역시 매 시각마다 음력 날짜와 구글 캘린더에 등록된 일정을 음성으로 안내해 줍니다. 
  • 실내 이산화탄소 수치가 1,000ppm이 넘으면 음성으로 안내해 줍니다. 
  • 주방에 설치한 8x8 해상도의 열화상 온도계가 200도가 넘으면 음성으로 안내해 줍니다. 

홈 어시스턴트의 두번째 화면

위 화면에서는 

  • 스마트 TV 제어 
  • 창고방에서 키우고 있는 유럽상추의 모습을 보여주는 ESP8266 Cam 화면 
  • 구글 네스트(Nest)의 작동 상태 그래프 
  • ipTime 공유기에 연결된 광랜중계기가 인터넷이 끊어지면 제어하기 위한 IoT 플러그 제어 
  • 7인치 RPi의 전원 제어를 위한 IoT 플러그 제어 
  • Volumio의 오작동으로 잡음 발생 시 RPi의 전원을 제어하기 위한 IoT 플러그 제어 
  • 거실 모션 센서는 7인치 LCD를 사람이 지나갈 때에만 표시하도록 하기 위해 설치 
  • 재실 센서와 모션 센서는 화장실 팬 자동화를 위해 설치했으나 사용하지 않고 있음  

구글 Nest 온도조절기는 0.5도 단위로 온도 조절이 가능하고 머신러닝을 통해 최적의 난방 온도를 제공해 준다고 합니다만, 저는 한 달 가량 사용해 본 후 그냥 수동으로 제어하고 있습니다. 관련 글(https://imky.tistory.com/40, http://imky.egloos.com/3296948

  • 한겨울(12~2월)에는 네스트 옆에 Xiaomi 온도계를 하나 설치하고 거실 바닥 근처에도 Aqara 온도계를 하나 추가한 후, 두 온도계를 기준으로 네스트의 온도 설정을 자동화 했습니다. 예를 들면, Xiaomi온도계가 22.0도를 초과하면 네스트 온도를 21.5도로 낮추고 21.0도 밑으로 내려오면 네스트 온도를 22도로 올리는 식입니다. 여기에 바닥의 온도도 추가하는데 Aqara 온도가 27도가 넘어가면 네스트 온도를 낮추고, 23도 이하로 내려오면 네스트 온도를 올립니다. 
  • 바닥의 온도를 기준으로 제어하는 이유는 집이 단열이 잘 안되어 있어서 아무리 바닥이 뜨거워져도 Xiaomi온도는 더이상 오르지 못하고 가스만 낭비하기 때문입니다. 봄이 오면 이 기능은 더이상 필요 없는데 Xiaomi와 Aqara의 온도차이가 2도 이하로 되기 때문입니다. 
  • 위와 같이 해서 가스비를 엄청나게 아낀 것은 아니고(11월~1월 사용분까지는 전년도와 비교 시 18만원 아낌), 다만 불필요한 난방을 제거하고 온도가 일정하게 0.5도 정도의 오차로 유지되도록 하는 수준입니다. 

 

부가적인 화면

DIY로 만든 이산화탄소 센서는 MH-Z19B인데 가끔 값이 부정확해집니다. 그럴 때에는 ABC(자동 기준 보정)을 켜놓고 집을 장시간 비우거나, 20분 이상 환기가 문을 열고 지속된 상태에서 Calibrate Zero를 눌러주면 보정이 되어 정확한 값을 표시해 줍니다. 

 

인덕션 위에 DIY로 설치한 열화상 온도센서 값 표시

주방의 인덕션 위 환기용 팬을 자동으로 작동 시키기 위하여 ESPHome기반으로 만든 AMG8833 8x8 열화상 카메라의 온도 정보와 인덕션 위쪽 벽에 부착한 Aqara 온습도계의 습도 값을 표시하고 있습니다. 

 

조금 불완전하긴 하지만, 습도가 75%를 넘어가거나 열화상 카메라가 인식한 최고 온도 값의 변화가 3분간 상승하는 경우에 자동으로 환기 팬을 작동하고 있습니다.(관련글 http://imky.egloos.com/3298412)   

 

위에 언급되지 않은 기타 자동화한 기능은 다음과 같습니다. 

  • 밤10시15분이 되어도 TV가 켜져 있으면 음성 안내하고 1분 후 TV 전원을 OFF 
  • TV를 켜면 Volumio의 Classic FM 재생을 중단 
  • Life360과 연계하여 모두 외출 시 Nest를 Eco모드(외출)로 설정하고 Classic FM 재생을 중단, 오전에 귀가하면 다시 재생 
  • PTC 팬히터를 켠 지 1시간이 지나면 IoT 플러그 전원 차단 

여기까지 오는데 꽤 오랜 기간을 들였던 것 같습니다. 홈어시스턴트는 다루기는 비전산인들은 조금 어렵게 느낄 수도 있는데 그래도 사용자가 많다보니 참고할 수 있는 블로그, 카페가 많아서 따라하면서 시간을 투자하면 다양한 홈오토메이션을 이룰 수 있는 좋은 도구라는 생각이 듭니다. 

 

앞으로 IoT의 천하통일을 꿈꾼다는 Matter를 지원하는 장치들이 많아진다면 굳이 DIY로 보드를 구성하지 않고 각 IoT 회사의 생태계에 적응하느라 소비하는 시간을 줄일 수 있을 것으로 예상됩니다. 

 

부모님댁에 설치해 놓으니까 멀리 떨어져 있을 때에도 온도, 습도, 이산화탄소 등이 잘 관리되고 있는지 확인도 가능하고, 바깥에 있는 강아지는 잘 있나 볼 수 있어서 편리합니다.