posted by ShinJjang 2018. 9. 4. 22:50

더운 여름이 이제 거의 지나갔지만 이번 여름은 정말 더웠던것 같다. 에어컨이 없으면 어떻게 했을까? 라는 생각을 이번 여름 내내 했다. 하지만 한편으로는 전기세 걱정때문에 틀고도 마음이 편하지 않았다.



그러다 ST까페에서 에어컨 실외기 수냉시키기 글을 보고 예전에 킥스타터에서 본 미스트 장치(아래)가 떠올랐다. 



댓글에도 링크가 있지만 미스트박스는 가격이 너무 비싸다. 그래서 '한번 만들어 보면 어떨까?' 생각하고 실행에 옮겼다. 





1. 미스트 장치 만들기



먼저 미스트 박스를 만들기 위해서 인공적으로 미스트를 만들어야하고 아래와 같은 장치가 필요하다.


     


미스트 장치 : 미스트 노즐과 펌프, 그리고 정수기용 호스와 이음관, 필터, 밸브 등등





그리고 미스트 장치를 컨트롤하기 위해 Wemos D1, 12V 파워서플라이, 5V 릴레이를 이용해서 아래와 같이 만들었다. 





그리고 아래 처럼 구성하였다. 20리터 물통에 첫번째 사진 처럼 장치를 하고 방수를 위해 하이박스에 펌프를 넣었다. 왼쪽은 침실용 미스트 장치 펌프이고 오른쪽은 거실용 미스트 장치 펌프이다.

 




그리고 미스트 노즐을 케이블 타이로 적절한 위치에 배치하였다. 

 


참고로 처음 3장의 사진은 2주전에 1차로 만들었을때 사진이다. 처음에는 노즐 6개로 만들었는데 이번에 12개로 업그레이드하였고 펌프도 60W에서 15W로 낮추어서 다시 만들었다. 노즐은 조금 작은것 같아 늘렸는데 12개는 너무 많은것 같다. 펌프는 60W는 너무 시끄럽고 출력이 높아서 15W로 낮추었는데 이것도 전혀 모자라지 않은것 같다. 





2. 미스트 장치 제어하기


미스트 장치를 만드는것도 중요하지만 제어하는것 또한 중요하다. 제어를 위해서 Wemos D1에 릴레이를 달아 ST에 연결하였다. 



아래 사진 처럼 ST에서 제어하기 위해 Wemos용 DTH를 만들어 등록했다.


DTH를 만들때 미스트 장치에서 미스트를 계속해서 뿌리는 것은 비효율적이라 작동할때 미스트 작동시간과 휴지 시간을 정할수 있도록 하였다.  그리고 ESPeasy를 이용해서 릴레이를 연결한 후 ESP의 IP주소와 릴레이에 연결된 Pin만 설정해주면 된다. 



또한 에어컨의 전원에 따라 미스트 장치가 작동하는 것이 아니라 실외기가 작동 할때만 미스트 장치가 작동하도록 해야한다. 



그래서 처음에는 도어센서를 이용해 실외기의 작동유무 판단하도록 했는데 아기나무집님의 미커넥터가 샤오미 AC Partner의 실시간 전력량을 리포팅하는 것을 이용해서 가상 스위치로 실외기(시각적 편의를 위해)를 만들었다. 그리고 난 후 Web Core를 통하여 실외기가 켜질때만 미스트 장치가 켜지도록 자동화 하였다.





아래 영상을 통해 확인해보면 알겠지만 실외기가 작동할때만 미스트 장치가 켜지고, 실외기가 작동하지 않으면 미스트 장치는 꺼지게된다. 영상에서는 중간에 리모컨을 이용하여 온도를 올려 실외기가 작동하지 않도록 하였다.




아래 영상은 미스트 장치가 작동하는 영상이다. (뒤쪽 공간이 부족하여 촬영 각도가 좋지 못함)






3. 실제 전기 에너지 사용 비교



무엇보다도 전기에너지 절감에 효과가 있는지가 가장 중요하다. 테스트 결과는 아래와 같다. 


먼저 실험실과 같은 통제된 환경에서 테스트되지 못하기 때문에 정확하지 않을수 있다. 

하지만 변인을 최소화하기 위해 외부 온도 변화가 적은 시간대와 방문을 통해 외부인(가족들)의 출입이 없는 시간대를 택했다. 



아래 두장의 사진을 통해 테스트 시간대에 실외와 실내의 온도변화 그래프이고 거의 변화가 없음을 알 수 있다. 




아래는 미스트 장치를 켜지 않았을때 에어컨의 전력 소비량그래프이다.



아래는 미스트 장치를 작동 시켰을때 에어컨의 소비전력량 그래프이다.



아래는 시각적으로 파악하기 쉽도록 포토샵을 이용하여 두개의 그래프를 중첩하였다. 



프로그램에서 구간의 소비전력량을 구해 주지 않기때문에 위의 그래프를 픽셀단위로 계산하여 면적값을 구하여 전력량을 비교하였다. 

면적값을 일일이 계산하고 더한 값을 종이에 적어두었는데(2주전에) 모르고 버려버렸다. 그래서 결과 값만 알고있다.



미스트 장치를 사용하지 않을때 전기 소비량을 100이라 하면


미스트 장치를 사용할때 전기 소비량은 80이었다.


하지만 미스트 장치(60W)를 사용함으로써 발생하는 전기 소비량이 2였다. 하지만 지금은 15W 펌프로 교체하였기 때문에 0.5로 줄었다. 



따라서 결론적으로 19.5%의 전기 에너지 절감효과가 있었다. 



미스트 박스에서는 20~30%의 에너지 절감효과를 볼수있다고 말한다. 실제로 실험 시간대가 새벽이고 물의 기화열 효과가 적은것을 감안하면 한 낮에는 더 큰 효과가 있을것이라 생각된다.


차후에 추가 테스트를 하게되면 결과를 추가하도록 하겠다.

posted by ShinJjang 2018. 5. 22. 17:11

종전에 스마트홈 까페에 올렸던 샤오미 커튼 DTH 이다. 


  •  오픈, 클로즈시 완료타이밍에 맞춰 정확하게 상태반영 인식
  •  수동으로 커튼 조작시에도 ST에 상태 반영
  •  홈킷에서 쉐이드로 인식하여 '열어', '닫아' 등의 명령으로 조작 가능
  •  ST와 홈킷 거의? 완벽 싱크
  •  커튼 열림정도를 1퍼센트 단위로 조절 가능
  •  현재 커튼의 열림상태에따라 Open, Partialy Open, Closed의 세가지 상태로 표시


Smartthings App








Smartthings App 작동영상 



Homekit 작동영상 



Smartthings App  & Homekit 




XiaomiCurtainDTH_V.1.1 (1).txt




posted by ShinJjang 2018. 5. 14. 23:51

이전 글에서 ESP8266을 이용해 CO2센서를 만들고 ST에 장치로 등록하고 Homebridge-Smartthings를 이용해서 Homekit에 등록하였다. 하지만 가끔 ST의 장치DTH에 runin함수 오류로 센서값을 불러오지 못하는 경우가 있는데 이 경우 당연히 홈킷에서도 그 값이 반영되지 않는다. 


 그래서 ESP8266에서 홈킷으로 바로 정보를 전달할 수있는 방법을 찾아보다 UDP-JSON플러그인을 알게되었다. 홈브릿지에서 UDP통신으로 올라오는 값들을 캐치해서 홈킷 장치에 그 값을 반영할 수 있게 해주는 플러그 인이다. 그래서 이 플러그인을 참조해서 센서별로 홈브릿지용 플러그인을 만들었다. 


아래 설명은 이전 글에서 ESP8266을 이용해 CO2센서를 만들가 수행되어있다는 가정하에 진행된다.



1. ESP Easy UDP설정하기


먼저 Controllers로 이동하여 Edit를 클릭하여 Protocol을 Generic UDP로 선택한 후 아래 처럼 세팅하면 된다. 




Locate Controller: Use IP address를 선택


Controller IP: 홈브릿지가 설치된 라즈베리 Pi나 시놀로지 나스의 로컬 IP입력(당연한 이야기지만 ESP8266이나 홈브릿지가 설치된 서버는 고정 IP로 설정후에 작업하는게 좋다)


Controller Port: 다른 장치들과 겹치지 않도록 UDP포트를 설정하면된다. 이 포트는 홈브릿지 Config파일과 설정이 같아야 한다. 


Controller Publish: 센서와 홈브릿지 플러그인별로 정형화된 형태로 그대로 넣어야 한다. 


  • CO2센서 



  • 조도 센서



  • 2. homebridge config.json파일 설정하기


    ESP Easy설정이 끝나면 먼저 config.json파일의 "accessories" 항목에 아래와 같이 추가하면 된다. 센서별로 추가하면 되며 현재는 CO2센서, 조도센서, 온습도센서에 대한 플러그인만 있으며 아래와 같이 설정하면 된다. 



    • CO2센서 

    "name": 원하는 장치명 설정 - 필수 설정


    "temperatureOn": true이면 온도 장치를 홈킷에 추가, false이면 추가하지 않음 - 선택 설정(기본 true)


    "carbonDioxideSet": 홈킷에서 이산화탄소 비정상 경고메세지 기준 농도값 설정 - 선택 설정(기본 1200)


    "listen_port": UDP통신 포트 설정값으로 ESP Easy의 설정과 같아야 한다. - 선택 설정(기본 8268)


     

    "accessories": [

    {

    "accessory": "ESPCO2",

    "name": "Jusensor",

    }

    ]


    OR


    "accessories": [

    {

    "accessory": "ESPCO2",

    "name": "Jusensor",

    "temperatureOn": false,

    "carbonDioxideSet": 1300,

    "listen_port": 8267

    }

    ]




  • 조도 센서
  • 조도 센서는 별다른 설정을 할 필요는 없다. 


    "name": 원하는 장치명 설정  - 필수 설정


    "listen_port": UDP통신 포트 설정값으로 ESP Easy의 설정과 같아야 한다.  - 선택 설정(기본 8269)


    "accessories": [

    {

    "accessory": "ESPLUX",

    "name": "Julux"

    }

    ]



  • 온습도 센서
  • 조도 센서는 별다른 설정을 할 필요는 없다. 


    "name": 원하는 장치명 설정  - 필수 설정


    "listen_port": UDP통신 포트 설정값으로 ESP Easy의 설정과 같아야 한다.  - 선택 설정(기본 8266)


    "accessories": [

    {

    "accessory": "ESPTH",

    "name": "ESPSen"

    }

    ]



    3. 홈브릿지 플러그인 설치하기


    도커를 이용할 경우

    install.sh 파일(플러그인 설치 주소 파일)에 아래의 주소를 추가하면 된다. 


  • CO2 센서
  • npm install -g shin4299/homebridge-esp-co2


  • 조도 센서
  • npm install -g shin4299/homebridge-esp-lux


  • 온습도 센서
  • npm install -g shin4299/homebridge-esp-th



    라즈베리 파이를 이용할 경우

    아래의 주소를 이용하여 설치하면된다. 라즈베리의 경우 직접해보지 않아 정확하지 않음


  • CO2
     센서
  • npm install -g https://github.com/shin4299/homebridge-esp-co2


  • 조도 센서
  • npm install -g https://github.com/shin4299/homebridge-esp-lux


  • 온습도 센서
  • npm install -g https://github.com/shin4299/homebridge-esp-th




    4. Homekit 적용 화면


    홈킷에 적용하면 아래와 같이 장치가 등록된다. 


    posted by ShinJjang 2018. 3. 13. 02:35

    ST나 홈킷에 실외 공기질 센서가 있으면 공기청정기를 자동화하거나 창문을 열거나, 외출을 할때 기준을 정할수 있을것 같다는 생각에 실외 공기질 센서를 자작 해볼까? 생각하고 있었다. 

    그러다 공개된 공기질 자료가 없을까? 검색하다 알게 되어 여기에 소개한다. 

    홈킷에 등록할 수 있는 형태이며 외국 사이트의 자료이다. 


    물론 국내에서 제공하는 http://www.airkorea.or.kr/ (플루님 소개로 알개되었다)의 자료를 이용하면 좋겠지만 그럴만한 실력은 안되니 어쩔수 없이 이거라도 정말 감사할 따름이다.


    먼저 홈킷용 플러그인은 아래 주소이며

    https://github.com/schmittx/homebridge-airvisual


    미세먼지 데이터를 제공해주는 사이트는 아래주소이다.

    https://www.airvisual.com/south


    위 사이트에서 국내 공기질 자료를 제공하는 스팟은 대충 아래와 같다.


    측정 스팟은 의외로 많지만 플러그인에서 설정은 나라-도-시 로 되어있어 도시 단위로만 설정이 가능하다. (이는 무료 API-key이기 때문이다)



    설치하기 


    1. 홈브릿지 플러그인 설치

    도커의 경우 install.sh파일에 아래 명령어를 추가하고 라즈의 경우 아래 명령어를 실행하여 설치하면 된다.

    npm install -g homebridge-airvisual


    2. API-Key 얻기

    https://www.airvisual.com/ 사이트에 접속하여 가입 후, 반드시 메일 인증을 거친 후에 사이트에 로그인 한다. 


    https://www.airvisual.com/api

    로그인된 상태에서 위 주소로 접속하면 아래와 같은 화면이 나타나는데 여기서 Community를 선택한다. 나머지는 유료이다.


    아래 화면에서 1. Community를 선택한 후에 create를 누르면 3번 항목이 생겨난다.


    위 화면의 3번 항목을 클릭하면 아래와 같이 API-Key가 발급되는데 아래의 Key값을 복사해두면 된다.




    3. Config.json 파일에 장치 추가하기


    config파일의 accessories에 아래와 같이 추가하면 된다. 아래는 대전시의 공기질을 가져오도록 설정한 것이다 

        "accessories": [

            {

                "accessory": "AirVisual",

                "name": "AirQ",

                "api_key": "FjYFdkaidkfs5o6jmcP",

                "sensor": "air_quality",

                "aqi_standard": "us",

                "city": "Daejeon",

                "state": "Chungcheongnam-do",

                "country": "South Korea",

                "polling": true

            }

        ],

     

    api_key부분에 위에서 발급받은 key값을 넣으면 되고 

    sensor 항목을 온도나 습도로 바꾸면 해당 도시의 온도와 습도 정보도 홈킷에 나타낼수 있다.

    aqi-standard는 공기질 표준을 미국(us)나 중국(cn)으로 설정할 수 있다

    그 아래 항목에는 원하는 위치 정보를 넣으면 된다. -참고로 GPS기반의 좌표를 넣을수도 있지만 나의 경우 제대로 작동하지 않았다


    위치정보는 아래 웹페이지에서 지도상에서 선택하거나 아래로 스크롤해서 내리면 state(도) 항목이 나오는데 탭해서 들어간 후 우측의 도시를 선택하면 된다. 


    https://www.airvisual.com/south-korea


    참고로 대전의 한 지역을 선택하면 아래와 같이 지역이 뜨는데 시 단위까지만 설정이 가능하기때문에 동은 넣을수 없다. 유료 api-key를 이용하면 동 단위로 정보를 받아올수 있지만 무료 key에서는 지원되지 않기때문에 시 단위로만 설정이 가능하다. 


    이렇게 등록후 홈브릿지를 재시작하면 아래와 같이 홈킷에 공기질이 나타남을 알수있다. 

    참고로 실제 미세먼지 수치는 나타나지 않으며 수치에따라 아래와 같이 표시된다.


    0~51 매우좋음,  ~101 좋음,  ~151 보통,  ~201 나쁨,  201 초과는 아주 나쁨이다.



    4. 미세먼지농도 표시하기

    혹시라도 미세먼지 수치가 표현되기를 바란다면 위의 플러그인 대신에 아래 플러그인을 설치하면 아래 사진과 같이 미세먼지 농도가 표시된다. 아래 플러그인은 기존의 플러그인을 개인적으로 수정한 버전이다. 


    npm install -g shin4299/homebridge-airvisual





    posted by ShinJjang 2018. 1. 2. 02:02

    많은 분들이 네스트를 통해 난방 자동화를 한다. 나 또한 네스트 디자인이 마음에 들어 너무 하고 싶지만 여건상 그게 불가능하다. 우리집은 나무 보일러를 주 난방용도로 사용하기 때문에 네스트를 통한 정확한 제어 자체가 불가능하다. 


    I. 우리집의 현재 상황

    1. 난방은 주로 나무보일러가 담당 

    2. 온수는 기름보일러와 나무보일러가 함께 담당 

    a. 일반적으로 온수 사용은 나무보일러에 저장된 온수 사용 

    b. 샤워를 할경우 안정적인 수온을 유지하기 위해 기름보일러를 온수모드로 작동시켜 샤워를 한다. 


    1) 문제점

    나무보일러의 난방수가 기름보일러를 통과한 후 각방으로 공급되는 것이다. 그래서 온수모드를 작동시켰을대 기름보일러가 온수를 데우지 못하고 나무보일러의 난방수를 데우는 역할을 해버린다. 그래서 기름보일러 온수모드를 키면 나무보일러를 외출모드로 반드시 바꾸어 주어야 한다. 


    2) 현재 IOT 상황

    현재 기름보일러의 작동은 샤오미 월스위치를 통해 스위치를 켜면 보일러가 온수모드로 작동하고 스위치를 끄면 보일러가 꺼지도록 자동화 되어있다. 또한 욕실에 샤오미 버튼을 이용하여 욕실에서 온수모드를 끄고 켤수 있고 알림등을 통하여 온수모드 작동 여부도 욕실에서 확인가능하다. 

    환풍기/기름보일러 온수 제어용 버튼

     

      기름보일러 온수 OFF

      

      기름보일러 온수 ON


    현재의 경우 여름에는 문제가 없지만 나무보일러를 가동하는 겨울의 경우 수동으로 외출모드로 바꿔야되다보니 기름보일러 자동화가 큰 의미가 없어 진다. 그래서 오래전 부터 작업하려든것을 미루다 오늘 작업하게 되었다. 


    나무보일러의 경우 아래와 같은 컨트롤러이고 외출버튼은 누를 때마다 난방모드와 외출모드로 서로 전환된다.  


    보일러 버튼은 대부분 토글형 버튼이거나 모멘터리형 버튼이다. 


    토글형은 한번 누르면 접점을 유지하고 또 한번 누르면 접점이 해제된다. 마치 모나미 볼펜의 버튼으로 생각하면된다.

    장점: 무선 릴레이를 사용할 경우 ON/OFF신호를 달리하면 신호를 중복하여 송출하여 비교적 정확한 제어가 가능하다.

    단점: 릴레이가 접점을 유지하기 위해 지속적으로 전력을 소모해야 한다.


    모멘터리형 버튼은 한번누르면 누르는 순간 접점이 되면서 모드가 바뀌고 바로 접점이 해제된다. 마치 샤프펜의 버튼으로 생각하면된다.

    장점: 제어 순간에만 전류를 사용하기 때문에 전력소비가 적다.

    단점: 무선 릴레이의 신호가 한번 끊기거나 컨트롤러가 제대로 작동하지 않은 경우, 상태가 반대로 될 수있다.


    나무 보일러 컨트롤러의 경우 모든 버튼들이 모멘터리형 버튼이다. 




    II. 자동화를 위한 설계

    기름보일러의 온수모드를 켜면 릴레이를 이용하여 외출모드로 바꾸어 주는 방식으로 자동화를 계획했다.


    1. 릴레이 선택

    5V IR릴레이는 쿠쿠님께서 무료로 나눔해주셨고, Remotec릴레이는 메이크리즘님께서 너무 예쁘게 포장하여 선물해 주셨다. 두분께 너무 감사드립니다.


    1) 첫번째 선택은 A

    a. 저렴하다. IR 릴레이는 쿠쿠님이 무료 나눔하신거고 USB충전기는 남아도는거다.

    b. 거실에 샤오미 IR리모트가 설치되어 있고 홈킷을 통한 IR신호 송출이 쉽게 가능하다.

    c. 이를 위해 이미 IR스위치를 홈킷에 만들어 두었다.


    작업시작 

    자동차 USB충전기는 나무보일러에 12V DC전원이 공급되고 있고 IR 릴레이의 작동전압이 5V이기 때문에 사용하지 않는 USB충전기를 분해, 개조하여 사용하였다. 


    납땜 작업을 포함 2시간에 걸쳐 나무보일러 컨트롤러에 연결 테스트하였다. 그러나 문제가 있다.

    a. 5V IR릴레이가 IR신호를 제대로 받아들이지 못하는 경우가 있다.

    b. 5V IR릴레이가 토글밖에 되지 않는다. 그보다 더 큰 문제는 토글이라도 순간적으로 켰다 끄면 되는데 스위치가 신호를 받아들이고 다음신호를 받아 반영하는데 최소 3초 이상의 시간이 걸린다. 그렇게 되면 외출 버튼의 접점이 일정시간 이상 유지되면서 모드가 자동으로 계속 바뀌게 된다.


    안타깝게도 2시간여의 작업이 물거품이 되었다.


    첫번째 선택이 실패하고 B와 C 중에 고민을 했다. 리모텍 스위치를 사용하면 ST와 직접 연결이 되어 원하는 방식으로 제어가 가능하지만 220V DC전원을 공급해야하고(주변에 220V가 없다), 무엇보다  특정 기간(겨울)만 쓰기 위해 비싼 리모텍 스위치를 쓰는 것이 아까웠다.


    2) 두번째 선택 B

    a. RF 릴레이 작동 전압이 12V라 나무보일러에 공급되는 전원을 그대로 사용할 수 있다

    b. RF 릴레이의 경우 작동모드를 고려하여 구매했기 때문에 다양한 모드를 지원한다(Toggle, Momentary, Latching, Time Delay mode)

    b. 브로드링크 RM Pro가 있지만 설치 및 사용을 해본적이 없다. 그동안 쓸일이 없었기 때문이다. 그래서 RM pro를 연결하고 홈브릿지를 통해 홈킷에 스위치를 만들어야 한다.

    c. RF신호는 IR신호보다 수신률이 높고 안정적이라는 장점이 있다. 하지만 오류 가능성은 여전히 있다.



    2. 작업과정


    1) 보일러 컨트롤러에 전원선과 외출버튼 접점용 전선 작업 후 RF 릴레이 연결

      

    좌측 사진 처럼 전선 납땜 작업후 우측 사진처럼 환기 구멍을 통해 전선을 빼고 다시 케이스를 결합했다. 



       

     전선을 결합하고  RF 리모컨을 이용하여 작동테스트를 한 후에 케이스를 끼운후 양면 테잎을 이용하여 고정하였다.


    아래 영상은 릴레이 설치후 정상적으로 작동하는지를 테스트한 영상이다. 




    2) 브로드 링크 설치

    메뉴얼에 따르면 되므로 따로 설명하지 않아도 될것 같다.


    3) 홈브릿지를 통해 브로드 링크를 홈킷과 연결

    아래의 사이트를 참조하여 홈브릿지용 플러그인 설치하면 된다.

    https://github.com/lprhodes/homebridge-broadlink-rm


    4) 홈킷에 자동화를 위한 RF신호 송출용 스위치 만들기

    RF신호 송출용 스위치를 만들기 위해서는 먼저 송출하고자 하는 RF 신호의  코드값을 알아야 한다. 

    코드값을 만드는 사이트가 있지만 그건 HA용이라 홈브릿지에서는 작동하지 않는다. 그래서 찾아보기 귀찮아 신호 코드를 스캔해서 사용했다.

    기본적으로 홈브릿지에  RM용 플러그인을 설치하면 아래 사진처럼 RF신호를 스캔할 수 있는 스위치가 생성된다. 

                  

    홈브릿지 로그창을 띄운 후 스위치를 켜고 RF리모컨을 브로드링크에 최대한 가까이 가져간 후에 2~3초간 버튼을 누른 후 때면 우측 사진 처럼 스캔된 RF 신호의 Hex code를 확인 할수 있다. 


    위의 코드를 이용하여 아래와 같이 config.json 파일에 원하는 유형의 스위치를 만들어 주면 된다. 나의 경우 RF릴레이의 모드를 Momentary로 사용하기 때문에 스위치 타입을 "switch-repeat"로 설정하였다. 이는 홈킷의 스위치를 누르면 켜지면서 한번 신호를 송출한 후에 바로 자동으로 꺼짐으로 돌아간다.


    5) 홈킷을 통한 자동화 하기

    ST의 웹코어를 이용해서 자동화 하면 좋겠지만 

    -RM pro를 ST에 연결하기 위해서는 복잡한 과정을 거쳐야하고 

    -샤오미 월 스위치의 경우 얼마전 ST허브 업데이트  이후 부터 연결이 불안정하여 샤오미 게이트웨이로 옮긴 상황이고

    -간단한 자동화이기 때문에 홈킷을 통해 아래와 같이 자동화 했다.

      



    6) 결과 확인

    아래의 영상은 딸아이가 월스위치를 눌러 기름보일러의 온수모드를 켜고 끄고 했을때 찍은 영상이다.

    영상을 보면 홈킷에 보일러의 켜짐과 꺼짐이 상태 반영이 되고 켜졌을때는 나무보일러가 외출로 바뀌고 꺼졌을때는 다시 난방모드로 바뀌는 것을 확인할 수 있다. 




    7) 자동화 전체 모식도



    오랫동안 미뤄왔던 자동화를 새해가 되어서야 했다. 부모님과 함께 살다보니 자동화를 잘못하게 되면 오히려 더 불편해 하시는 경우가 많다. 그리고 사람이 많을수록(부모님 아이들, 우리부부 총 6명이다) 완전한 자동화를 하는것이 더욱 힘들어진다. 그래서 완전한 자동화 보다는 물리적 버튼을 통한 부분적 자동화나, 단순한 자동화, 눈에 보이지 않는 자동화를 하게 되는것 같다. 나에게는 자동화를 계획하는게 무척 힘들고 실행하기는 더 힘든것 같다.

    posted by ShinJjang 2017. 12. 12. 00:54

    스마트싱스의 아울렛류(소켓, 플러그, 콘센트 등)를 Homebridge를 이용하여 홈킷에 등록하면 해당 장치가 스위치로 나온다. 만약 전력량이 리포팅되는 DTH의 경우는 스위치와 콘센트로 2개의 장치로 등록된다. 하지만 홈킷에 등록된 콘센트는 상태반영도 안될뿐 아니라 실제 장치를 제어할 수도 없다. 


    물론 홈킷에서 그냥 스위치로 사용하여 장치를 제어하면 되지만 그러면 내 마음이 편하지 않다. 왠지 콘센트로 등록하고 제어해야 마음에 들것 같다. 사실 아래 화면처럼 홈킷에 있는 장치 모양들이 다양해야 장치를 구분하기도 쉽고 보기에도 좋다. 그리고 무엇보다 내 마음을 즐겁고 편하게 한다. 아마 홈킷을 사용하는 대부분의 사용자가 비슷한 마음일것 같다. 그래서 또 어떻게 되지 않을까 하고 homebridge-smartthings를 들여다 봤다. 


    코드에 대해 아는거라곤 If, else if밖에 없어 잘은 모르지만 코드상 DTH수정으로는 홈킷에서 콘센트로 제어하는것이 불가능하다는건 알겠더라. 그래서 코드를 살짝 바꿔서 내 나스의 해당파일을 찾아 수정한 파일로 교체했다. 파일하나 교체하는데 3시간 걸렸다. 왜냐하면 숨겨진 파일을 SSH로 접속해서 찾아내고 교체하는 작업을 해본적이 없어 여기저기 찾고 물어본다고 3시간이 걸렸다. 


    과연 될까라는 설레이는 마음으로 도커 홈브릿지 이미지를 재시작했다... 이런 젠장. 도커를 사용하면 이미지를 재시작할때 마다 새로 플러그인을 받아 설치하다보니 교체한 파일이 다시 원상복구되어버렸다. ㅠㅠ 3시간에 걸친 파일교체가 의미없게 되버렸다. 


    그래서 정말 혹시나해서  github에서 homebridge-smartthings를 fork해서 내 계정으로 가져와 해당 코드부분을 수정하여 

    플러그인 주소에 내 아이디를 넣었더니 세상에... 수정된 파일이 설치되는게 아닌가? 스스로 대박을 외치며 홈킷을 열었더니 아래 사진처럼 ST에 등록된 Outlet이 콘센트 하나로 등록될 뿐만 아니라 제어까지 되는걸 확인했다. 무모한 도전이 성공할때의 즐거움과 만족감이 좋은것 같다. 

    추가로 펌프를 수도꼭지로 바꾸고 싶어서 도전했지만 실패했다. 가장 큰 문제는 홈브릿지 자체에 수도에 대한 정보가 없다는 것이다. 아쉬운 마음을 뒤로한채 접을수 밖에 없었다.



    홈킷에 콘센트로 등록하는 방법


    1. DTH수정

    먼저 어떤 장치(플러그나 아울렛, 스마트 소켓, 스위치류, HA와 연동된 샤오미 멀티탭 등)도 상관없다.   스위치 형태로 ON/OFF 되는 장치면 된다. 

    먼저 아래 처럼 IDE사이트에서 MY Device Handler로 이동하여 원하는 DTH를 클릭하여 코드 페이지로 이동한다.

    그리고 사진에 체크박스된 것 처럼 command "Outlet"을 추가한다.


    2. HomeBridge Plug-in 수정하기


    - 라즈베리 파이에 HomeBridge가 설치된 경우 아래의 주소를 이용하여 homebridge-smartthings플러그인 설치 및 홈브릿지 재시작

    npm install -g shin4299/homebridge-smartthings


    - 도커에 HomeBridge가 설치된 경우는 istall.sh파일을 열어 아래 주소를 추가한 후에 이미지 재시작

    npm install -g shin4299/homebridge-smartthings


    3. 홈킷을 열어 확인한 후 기쁜 마음으로 사용^^

    위의 간단한 과정이 끝나면 아래 영상에서 보듯이 콘센트로 등록되고 제어도 가능하다.