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 2017. 5. 23. 11:12

     샤오미 ( Xiaomi ) 에서 새로나온, Aqara version* 도어/창문 센서(3개)와 온습도 센서(3개), 그리고 무선 스위치(4개)가 어제 오전에 도착했다. -왜 이렇게 많이 시킨건지 모르겠다. 기존 센서와 합치면 스위치를 제외하고 도어, 온습도, 모션센서만 20개가 넘게 되었다. 센서 부자다. 기쁜게 아니라 무계획의 결과에 가슴이 아프다.



    *(아카라 버전에 대한 정확한 의미는 모르나 샤오미 홈 버전 출시이후에 나온 홈 자동화 디바이스들을 통칭하는 것으로 보인다. 그리고 Aqara버전은 Zigbee통신을 이용하기 때문에 샤오미 홈 게이트웨이를 통해 통합관리된다.)


     어제 오전에 받자 마자 급한 마음에 무선 스위치만 스마트싱스(Smartthings) 허브에 연결해 보았다. 연결**은 아무 어려움 없이 되었다. 하지만 스위치의 버튼을 눌러도 스마트싱스(Smartthings)에는 'Pushed'나 'Held'의 어떤 신호도 감지되지 않았다. 멘붕이 왔다.


    **(일반적으로 나의 경우 샤오미 센서의 연결은 스마트싱스(Smartthings) 허브에 올라오는 Catcall의 Network ID를 이용해서 수동으로 디바이스를 등록해 주었는데, 새로나온 제품들은 운이 좋았던 건지 스마트싱스(Smartthings) APP에서 '+ Add a Thing'을 누르고 기다리면 자동으로 잡힌다. 각각의 센서와 스위치 모두 시간차는 있었지만 자동으로 'Thing'로 잡혔다. -일부러 기다린건 아니고 두번은 catcall 잡아서 수동등록하고 있는데 폰에서 자동으로 'Thing'으로 잡혔다. 그래서 한번은 그냥 기다렸는데 안올라와서 리셋버튼 누른후 허브 가까이 두었더니 자동으로 'Thing'이 잡혔다.) 



    1. 샤오미 Aqara 무선 스위치(버튼)


    일단 외관은 아래와 같다. 디자인 부분은 호불호가 다르니 개인의 판단에 맡기겠다. 개인적으로는 Aqara버전이 마음에 든다. 특히 2개 이상을 함께 사용할때 두개를 나란히 설치해도 이질감이 덜 하기 때문이다. 하지만 하나만 설치 하거나 놓아둔다고 생각하면 상황에 따라 다를것 같다. 



    디자인적인 차이보다 나에게 더 눈에 들어오는 것은 알림LED와 리셋 버튼의 변화이다. 기존의 버튼은 아래 사진처럼 둘다 버튼 밑면에 배치 되어있다. 특히 리셋 버튼을 누르기 위해서는 가늘고 긴 핀(아이폰 유심트레이 토출용 핀과 같은)이 필요하다. 그러나 새로 나온 스위치는 알림 LED는 윗면(위 사진의 아랫쪽 작은 점)에 나와있고



    리셋 버튼은 아래 사진 처럼 손으로도 누를수 있게 바뀌었다. 이점이 외형적 변화에서는 가장 마음에 든다. 




    처음 새 스위치를 스마트싱스와 연결했을때, 연결은 문제가 없었으나 버튼을 눌러도 스마트싱스에서는 아무런 응답이 없었다. 멘붕이 왔다. 


    답답한 놈이 우물 판다고 잘은 모르지만 그동안 본것은 있어서 Smartthing IDE에 올라 오는 Logs를 보았다. 한번 누르든 길게 누르든 아래와 같이 'on/off: 0'만 올라왔다. 두번 클릭하면 아무 로그도 올라오지 않았다.


    아는건 없지만 무작정 디바이스 핸들러러(My Devices Handlers)를 열어보니 아래와 같이 되어있었다. 


    코드는 정말 전혀모르지만 로그에 'on/off: 0'과 'on/off: 1'이 올라오는 시간 차를 이용해서 버튼의 작동을 판단한다는 것 정도는 알겠더라. 그래서 감으로 코드를 잘라 붙였다. 몇번의 실패끝에 아래와 같이 수정하니 'Pushed'는 잡힌다.




     기존 샤오미 무선 스위치(버튼)을 사용하는 분들은 아마 'Pushed'와 'Held'가 정확히 구분이 되지 않고 오작동 하는 것을 알고 있을것이다. 그래서 그런지 새 스위치는 샤오미 홈게이트웨이에 연결해도 'Click'과 'Double Click' 두 가지로만 인식되고 'Hold'는 되지 않는다. 샤오미에서도 오작동을 알고 새 버전에서는 'Hold'를 없앤것 같다. 


    아래 사진은 SmartThings APP 화면이다.




    아래 사진에 보듯이 버튼을 누르면 'Pushed'가 정상적으로 올라오는 것을 볼수 있다. 그리고 정확도에는 의문이 있지만 배터리량 또한 100%로 올라온다. 믿고싶은 수치다.





    2. 샤오미 Aqara 온도/습도 센서


    온도/습도 센서의 경우 둥근 모양에서 네모난 모양으로 바뀐것 외에 큰변화는 없어 보인다. 실제 성능의 개선이나 변화가 있는지는 알 길이 없다. 



    공기 구멍이 조금 더 작다.


    리셋버튼의 크기가 달라졌다.


    아래 사진은 SmartThings APP 화면이다. 정상적으로 온도와 습도가 올라온다. 그런데 추가로 뭔가 다른 내용이 올라오는것 같다. 무슨 내용인지 알수는 없다. 





    아래 두장의 사진은 같은 장소에 구모델(위사진-Xiaomi Home에 연결)과 Aqara모델(아래사진-ST에 연결)의 온습도를 비교한 것이다. 온도는 같으나 습도가 2%정도 차이가 난다. 어느게 더 정확한지 알수는 없다.




    위의 사진에 배터리는 올라오지 않았지만 지금은 배터리가 올라와있다. 그러나 25%이다. 믿고 싶지 않은 수치다.



    3. 샤오미 Aqara 도어/창문 열림닫힘 센서


    일단 도어 센서는 개인적으로 둥근것 보다 네모난 것이 더 낫다. 문이나 창문도 사각형에 표면이 평면이기 때문에 센서도 네모난 것이 개인적으로 더 안정감이 있다. 

    그런데 다른 회사제품에 비하면 여전히 작지만 크기가 이전보다 아주 조금 이지만 커졌다. 작아지지는 못할 망정 더 커지다니... 아래 사진을 보면 더 크게 느껴진다.  


    사진으로 보면 크기가 눈에 뛰게 커진것 같다. 그래서 글을 쓰다 정확하게 비교를 해보았다. 

    결론적으로 두께는 본체와 마크네틱부분 모두 똑같다. 이전 제품이 곡면이라 두께가 더 얇아 보이지만 뒤집어서 높이를 비교해보면 완전 똑같다. 


    아래 사진으로 볼때 본체의 경우 세로와 높이는 같고 가로만 1mm정도 크다. 마그네틱부분은 높이는 같고 Aqara버전이 세로는 1mm정도 작고 가로는 1mm정도 크다. 즉 보기와 다르게 거의 같다는 이야기다.


    아래 사진은 SmartThings APP 화면이다. 열림과 닫힘 이전 제품과 거의 같은 속도로 인식된다. 

    사진을 찍을때 배터리가 올라오지 않았지만 지금은 배터리가 올라왔다. 1%이다. 믿기 싫은 수치다. 역시 배터리 수치는 믿지 말아야 겠다.




    결론


    - 전반적으로 디자인 외에 큰 차이는 없다.


    - 가격도 큰차이가 없다. 전체적으로 보면 오히려 싸다.

        기어베스트 기준 가격은 아래와 같다.


                       구버전    Aqara버전

    도어 센서     $7.89     $6.99

    온습도 센서  $11.99    $9.99

    무선 스위치  $6.89    $7.99



    - 쿠쿠님 처럼 코드를 만질수 있으면 좋겠다.

    - 제품을 지를때 계획을 가지고 지르자. 예전보다 좋아졌지만 아직 멀었다.