본문 바로가기
Hardware/Home Assistant(라즈베리파이)

Zemismart WIFI 스위치 KS-811 펌웨어 수정 및 설치 & Home Assistant 연동(feat. 중성선 매립)

by lovey25 2021. 1. 30.
반응형

Home Assistant(HA)를 서버로 두고 Wifi스위치에 보조등을 달아서 원격 컨트롤하며 사용하고 있고 그리고 아파트 홈네트워크의 RS485 인터페이스로 거실 및 복도 등을 연동해서 컨트롤하고 있습니다. 그리고 구글 홈 미니와도 연동되어 있기 때문에 음성명령으로 끄고 켜는 것도 너무 편하고 HA의 자동화 기능으로 해 뜨면 불 꺼주고 해가 지면 불 켜지게 해서 사용하고 있는데 이것도 너무 편하고 만족하고 있습니다. 그런데 아쉬운 것이 제가 살고 있는 아파트의 홈네트워크가 반쪽짜리라서 집안의 모든 스위치를 HA에 연결하지 못하고 있다는 점입니다. 이게 무슨 소리냐, 홈네트워크에 연결되어서 컨트롤할 수 있는 전등이 거실 등과 복도등 이 둘 뿐이고 안방 및 작은방 그리고 화장실, 부엌 등 스위치는 스마트 스위치가 아닌 일반 스위치라서 HA에 연결하지 못하고 있습니다.

그러다 보니 욕심이 생기는 게 집안에 있는 모든 스위치를 HA에 연결시켜서 좀 더 거국적으로 홈네트워크를 구현하고 싶어 졌고 그래서 기존의 일반 스위치를 스마트 스위치로 교체하는 작업을 시작하게 되었습니다.

스마트 스위치 선택

교체할 스위치는 일반적인 똑딱 스위치입니다. 어떤 스위치로 교체해야 할지 찾아보다 알게 되었는데 우리나라에서 보통 많이 사용하는 이런 세로 형태의 스위치는 미국식 규격인 것 같습니다. 그래서 알리에서 미국식 규격이라고 된 제품 중에서 선택을 했습니다. 그리고 브랜드는 커스텀 펌웨어를 올려서 사용해본 후기가 있는 제품 중에서 선택을 해서 "Zemismart KS-811"이라는 걸로 골랐습니다.

 교체전 & 교체후

교체 전&후 비교 사진인데 기존 인테리어에도 잘 어울리는 것 같지 않나요? 스마트 스위치다 보니 기존 스위치처럼 똑딱하는 맛은 없지만 그래도 물리적인 누름이 가능한 것도 이 제품의 장점인 것 같고 스위치 켜짐 상태를 보여주는 LED도 있어서 마음에 들었습니다.

KS-811 모델은 버튼 수에 따라서 1, 2, 3 Gang으로 구분됩니다. 전 2 gang 모델이면 되지만 가격차이가 크지 않아서 3 gang으로 구매했습니다. 왜냐하면 일단 2개는 기존 전등 스위치 2개를 대체하고 그리고 남는 1개는 HA의 자동화나 Red-node를 이용해서 집안에 있는 다른 제품에 붙여서 컨트롤하는 스위치로 사용하면 좋을 것 같아서였습니다.

개봉기

제품 박스는 여느 중국산 제품들과 다름없이 그냥 보통 박스에 비닐 포장된 폰체로 되어있습니다.

구성품은 본체와 설명서 그리고 벽에 설치할 때 필요한 볼트 2개가 들어있네요.

설명서는 그림으로 알기 쉽게 어떻게 연결해야 하는지가 깔끔하게 잘 나와 있습니다.

그리고 이건 자체 제공하는 앱에 어떻게 연결하는지를 설명하는 부분인데, 저는 원래 있던 펌웨어 밀어버리고 ESPHome을 올려서 HA에 연결해서 사용할 생각이기 때문에 가볍게 패스해줍니다. 

가장 중요한 것이 컨트롤 보드가 어떻게 생겼으며 펌웨어가 잘 올라갈 수 있을지이니까 바로 제품을 살펴보겠습니다.

제품 뒤를 보면 중성선과 접지선을 연결하는 단자가 한쪽면에 있고 다른 면에 활성선과 컨트롤할 전등으로 연결되는 연락선(?)이 위치하는 단자가 배치되어 있습니다. 모퉁이에 볼트가 4개 보이는데 모두 풀어주면 이렇게 2단으로 구성된 보드를 볼 수 있습니다. 상하 보드 모두 볼트 4개로 고정되어 있는데 모두 풀어보겠습니다.

왼쪽 사진이 ESP8266과 스위치가 있는 컨트롤 보드이고 오른쪽 보드에는 릴레이 및 정압기(?)등이 위치하고 있습니다. 

펌웨어 업로드

펌웨어를 교체해야 하니 유심히 봐야 할 부분은 바로 왼쪽의 컨트롤 보드입니다. 보드를 잘 살펴보면 고맙게도 Rx, Tx 그리고 3.3V 전원 단자가 마킹되어 있습니다. 이 부분에 USB to UART 보드를 연결하면 될 것 같고 비슷한 방법으로 Sonoff 제품 펌웨어를 몇 번 만져봤더니 좀 익숙한 느낌이어서 바로 원래 있던 펌웨어 백업 진행해 봤습니다.

Sonoff 스위치의 펌웨어를 교체했을 때와 같은 방법으로 시도했습니다. 어?! 그런데 이 방법으로는 안되네요. 아무리 해도 컴퓨터에서 기기 연결을 하지 못하고 연결 실패만 반복하고 있습니다. Sonoff와는 차이가 있는 것 같습니다. 그런데 UART단자 주변에 보면 "IO0"라고 마킹된 단자가 하나 더 눈에 띕니다.

ESP8266 칩 업로드를 할 때 칩을 다운로드 모드로 부팅을 해야 펌웨어에 손을 댈 수 있죠?! 그리고 다운로드 모드로 부팅을 할 때 GPIO 0번 핀이 LOW 상태에서 전원을 넣어주어야 하는데 혹시나 해서 IO0를 GND와 쇼트한 상태에서 전원을 넣어 봤습니다. 그랬더니 연결이 잘 되었습니다.

보드 정보 잘 읽어지고요.

1MB 플래시라고 되어 있으니 아래 명령어로 원래 펌웨어를 일단 백업해 둡니다.

esptool.py -p COM5 read_flash 0x00000 0x100000 ks811.bin

이건 백업한 펌웨어입니다.

ks811.bin
1.00MB

이제 준비작업이 끝났고 업로드할 펌웨어를 준비해 보겠습니다.

펌웨어를 만들기 위해서 기본적으로 알아야 하는 정보가 각각의 스위치가 ESP칩 어느 핀에 연결되어 있는지, 그리고 릴레이를 컨트롤하는 핀은 몇 번 인지겠죠.. 그래서 야심 차게 삑삑이 들고 단자를 하나하나 찍어서 그림을 그려갔습니다.

이렇게 한참을 하다가 좀이 쑤셔서 혹시나 하는 마음에 검색을 해 봤더니 ㅋㅋㅋ 역시나 인터넷에는 없는 게 없네요.

community.home-assistant.io/t/zemismart-ks-811-working-with-esphome/118566

이미 노가다를 대신해주신 분이 계십니다. 그래서 알게 된 IO정보입니다.

입력 : 스위치 1번 - GPIO16, 스위치 2번 - GPIO5, 스위치 3번 - GPIO4
출력 : Status LED - GPIO2, Load1 - GPIO13, Load2 - GPIO12, Load3 - GPIO14

그리고 감사하게도 ESPHome yaml 스크립트도 공개해주셔서 냉큼 가져왔습니다. 아래 코드는 출처와 거의 동일한데 아주 약간만 수정했습니다. 기능은 스위치를 누르면 각각의 릴레이 상태를 토글 합니다. 그리고 WIFI 신호 강도와 디바이스 동작 시간을 카운팅 하는 기능이 들어가 있습니다.

esphome:
  name: kitchen
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
 
  ap:
    ssid: "SOS_kitchen"
    password: !secret wifi_password

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: !secret ota_password

ota:
  password: !secret ota_password


# for pinout/schematic 
# https://community.home-assistant.io/t/zemismart-ks-811-working-with-esphome/

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO16
      mode: INPUT
      inverted: True
    name: "Top"
    on_press:
      - switch.toggle: load1
  - platform: gpio
    pin:
      number: GPIO5
      mode: INPUT
      inverted: True
    name: "Mid"
    on_press:
      - switch.toggle: load2
  - platform: gpio
    pin:
      number: GPIO4
      mode: INPUT
      inverted: True
    name: "Bottom"
    on_press:
      - switch.toggle: load3

switch:
  - platform: gpio
    name: "Kitchen"
    pin: GPIO13
    id: load1
  - platform: gpio
    name: "Table"
    pin: GPIO12
    id: load2
  - platform: gpio
    name: "Sidelight"
    pin: GPIO14
    id: load3

status_led:
  pin:
    number: GPIO2
    inverted: yes

sensor:
  - platform: wifi_signal
    name: "Kitchen WiFi signal"
    update_interval: 600s

  - platform: uptime
    name: "Kitchen uptime"

 

이 스크립트를 ESPHome에서 컴파일 한 다음 바이너리 파일로 다운로드하고 KS-811에 원래 있던 펌웨어 깨끗하게 지운 다음 아래 명령어로 업로드했습니다.

esptool.py --p COM5 erase_flash 
esptool.py --p COM5 write_flash -fs 1MB -fm dout 0x0 ks811new.bin

여기까지 하면 이제 교체할 스위치 준비가 끝났습니다. 펌웨어가 올라가고 나서 잠시 기다리면 HA에서는 새로운 구성요소의 발견 알림이 뜨고 여느 ESPHome 디바이스처럼 인식을 하게 됩니다.

스위치 설치

이제 새로운 스위치가 준비되었으니 실제로 원래 있던 스위치와 교체를 진행해 보겠습니다. 먼저 두꺼비집 내리고 작업하는 거 잊지 마세요.

야심 차게 껍데기 우다닥 벗기고 스위치를 뽑아냈더니... 어라!!

무슨 근자감이었는지는 모르겠는데 저희 집에는 모든 스위치에 당연히 중성선이며 접지선이 매립되어 있을 거라 생각했었습니다. 그런데 스위치 열어보고 활선밖에 없어서 잠깐 멘붕이네요. 왜냐하면 KS-811 스위치는 중성선이 있어야 컨트롤러가 동작할 수 있기 때문입니다. 답답한 마음에 두꺼비집도 열어봤는데 제 지식으로 해볼 수 있는 게 없을 것 같습니다.

한 번도 해보지 않은 작업이라 걱정이 되긴 하지만 기껏 사놓은 스위치를 어떻게든 사용해야 하니 전기선 매립공사 진행했습니다.

벽안으로 선을 집어넣어야 하고 전등에 연결하고 뭔가 무섭고 힘들 거 같은데 결론적으로는 생각보다 할만했습니다. 요즘 아파트들은 전기선 매립 시공이 아주 잘 되어 있어서 비교적 손쉽게 중선선 추가매립이 가능합니다.

중선선 매립 관련해서 일단 유튜브 영상 보면서 공부를 좀 했는데요. 몇 가지 준비물이 필요했습니다. 가장 중요한 게 요비선이라고 부르는 빳빳한 와이어인데, 전선관을 따라서 쑥쑥 밀어 넣을 수 있고 반대편에서 매립하고자 하는 전선을 연결해서 다시 뽑아내는 과정을 통해 전선 매립 작업을 하게 해주는 그런 공구입니다. 그 외에도 전선, 절연 테이브, 니퍼, 등등 필요했습니다.

작업해야 하는 구간은 위 사진과 같습니다. 벽에 설치된 스위치에서 벽 따라 올라간 다음 천장 따라 약 1m 이내의 짧은 거리에 있는 전등까지 매립 구간입니다. 전등은 천장에 이런 식으로 매립되어 있는 형태인데 커버를 열어보면 내부에 활선, 중성선, 접지선 3가지 종류의 와이어가 연결되어 있는 걸 볼 수 있습니다.

바로 여기서 KS-811에 필요한 중성선과 접지선을 분기해서 벽스위치까지 연결하는 게 목표입니다.

본격적인 작업을 위해서는 설치된 전등 뭉치를 완전히 제거해 주어야 합니다. 왜냐하면 각 전등까지 개별의 전선관들이 연결된 방식이 아니라 전선관은 천장 콘크리트 안쪽에 매립되어 있고 전등이 설치되는 위치 위치마다 교차로처럼 전선관들이 모여드는 구간이 있는데 바로 이 부분까지 접근을 해야 선 매립작업을 할 수 있거든요.  

점점 일이 커지긴 하지만 이제 더 이상 물러설 수도 없어졌습니다. 

전등 뭉치를 제거하고 나면 천장에 위 사진처럼 전선들이 교차하면서 통과하는 부분을 볼 수 있는데요. 이제 인출선(요비선)이 활약할 시점입니다.

벽스위치를 빼낸 자리에 보면 벽을 타고 올라가는 전선관 입구가 보이는데요. 여기에 인출선 머리를 집어넣고 쑥쑥 밀어 넣습니다. 구간이 짧기도 하고 굴곡이 많지도 않아서인지 쑥쑥 밀어 넣는 대로 막힘없이 들어갔고 바로 전등위치까지 인출선이 도달했습니다.

이제 인출선 머리에 있는 고리 부분에 매립하고자 하는 중성선과 접지선이 될 전선 2가닥을 연결하고 전선관을 통과해 가는 동안 걸리지 않도록 절연 테이브로 꽁꽁 싸매 줍니다. 그런 다음 벽스위치에서 인출선을 다시 반대방향으로 뽑아냅니다.

짜짠~ 드디어 전등부터 스위치까지 추가선 2가닥이 매립되었습니다. 첨엔 이걸 어떻게 해야 하나 걱정이 태산이었는데 걱정했던 것보다는 훨씬 간단하게 매립작업이 끝났습니다.

저 같은 경우는 설치된 전등에 사진처럼 접지선, 중성선이 분기될 수 있도록 커넥터 같은 부분이 있어서 기존 접지선과 중성선에 연결을 간단하게 할 수 있었습니다. 조립의 역순으로 해집어 놨던 전등을 다시 설치해주고 스위치 부분도 마무리해 보겠습니다.

설명서와 제품 안내에 따라 기존에 사용하던 활선과 전등 연락선을 잘 연결해 주고, 새로 매립한 중선선과 접지선도 연결합니다. 스위치를 볼트로 단단히 고정하고 덮개를 씌워서 스위치 부분도 조립을 완료했습니다.

이제 내려놨던 두꺼비집만 올려주면 끝~입니다.

딸깍 딸깍 누르는 느낌이 마치 마우스 클릭하는 느낌이라서 원래 똑딱 스위치 같은 누르는 맛은 없지만 그래도 스마트 스위치니까 감안하고 써줄 만한 것 같습니다. 

이제 3번째 스위치는 어떻게 사용하면 좋을지 고민 좀 해봐야겠어요. 예전에 설치했던 거실 스탠트가 물리 버튼이 없는 상태라서 쓸 때마다 핸드폰으로 조작했어야 했는데 그거랑 연결하면 좋을 것 같네요. 이상, KS-811 펌웨어 수정하고 중성선 매립해서 기존 스위치를 대체하는 긴 여정을 마치도록 하겠습니다.

 

끝!

반응형

댓글