본문 바로가기

홈어시스턴트 IoT

Xiaomi Gateway 3 최신 펌웨어(v1.5.5.xxx) 홈어시스턴트 통합 주의

새로 설치한 Home Assistant의 HACS에서 Xiaomi Gateway 3 for Home Assistant를 다운로드하고 Integration에서 통합을 하려고 하는데, 갑자기 안되는 것이었습니다. 

 

Home Assistant에서 Gateway 3 등록 시 기존에는 Token만 알고 있고, {"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}} 이것만 넣으면 되었었죠. 

 

이제는 Gateway Key 값도 알아야만 등록이 됩니다.  - Support Xiaomi Multimode Gateway on firmware 1.5.5 · Issue #13 · AlexxIT/Blog · GitHub

  • {"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}} => 이거는 더 이상 필요 없어요.
  • 이 키 값은 Gateway 3에 telnet으로 연결할 수 있어야 알 수 있다고 하는 것 같습니다. 저는 이미 수정된 펌웨어라서 telnet(port 23)으로 접속할 수 있는데 v1.5.5 정품 펌웨어도 telnet이 되는 지 모르겠네요. 수정된 펌웨어는 접속 시 이러한 정보들이 표시되지만, v1.5.1 정품 펌웨어는 접속해도 아무 정보가 나오지 않는 것 같습니다. 
  • 만약 Home Assistant에 통합된 상태였다면 버튼을 조작해서 telnet에 연결할 수도 있다고 하네요(5 clicks, pause, 2 clicks, pause, 2 clicks, pause, 2 clicks, pause, 2 clicks, pause, 2 clicks, pause, 2 clicks, pause). 

물론 HACS에서 Xiaomi Gateway 3 for Home Assistant를 다운로드할 때 문서에 다~ 써 있지만 읽을 리가 없었겠죠? 혹시 Mi Home앱을 통해 Gateway 3를 v1.5.5 펌웨어로 업그레이드를 했다면 꼭 읽어보아야 할 것입니다. 

 

저는 Key값을 알아 두지 못한 상태로 신규 설치 중이라서 대충 읽어서 이해하지 못한 상태에서 어쩔 수 없이 UART로 작업을 했습니다. -> 만약 아직 telnet 접속이 된다면 UART 작업은 당연히 필요 없고, 저 밑에 설명되어 있는 수정된(mod) 펌웨어를 설치하면 키 값을 알 수 있게 됩니다.  

 

 UART를 연결하는 방식으로 몇 시간에 걸쳐서 펌웨어를 낮춘 후, telnet 명령을 통해 커스텀 v1.5.5를 설치하였습니다. 

  • 하지만, 뚜껑 여는 것이 생각보다 많이 어려우므로 정 안될 경우에만 해야 하겠습니다. 날이 얇은 주머니칼 정도는 되어야 틈을 비집고 들어갈 수 있고 케이스 손상 없이 열기가 거의 힘듭니다. 힘주다가 미끄러지면 손 베거나 다칠 확률 엄청 높으니 장갑 끼고 도전 필요... Home · AlexxIT/XiaomiGateway3 Wiki · GitHub
  • 내부에 GND, Tx, Rx 납땜하는 것도 USB 인두기로는 난해하고요, 3.3V TTL을 지원하는 USB to Serial 변환기도 있어야 하니 장비가 없다면 다 사야하는데 그 돈이면 그냥 USB Zigbee 동글을 사겠네요^^
  • 요즘 사람 대부분은 알지도 못할 추억의 XMODEM 프로토콜로 38400bps로 접속 후 올려서 두 시간 ? 걸린 것 같습니다.  
 

주머니칼과 일자 드라이버로 무식하게 연 결과물입니다... 

 

샤오미 게이트웨이 3 뚜껑 열기

 

 
 

아직 1.5.5_0006으로 업그레이드를 안한 상태라면, 현재 1.5.1_0032 버전인 게이트웨이3를 수정된 펌웨어로 업그레이드하거나, 키 값을 알고 싶을 것입니다.

 

만약 이미 홈어시스턴트에 Gateway3가 연결되어 있다면, 키 값은 홈어시스턴트에서도 알 수 있습니다(이 글을 쓸 당시에는 Home Assistant를 신규 설치 중이었고, 펌웨어도 1.5.5_0006 최신으로 되어 있는 상태라서 아래 화면을 볼 수 없었습니다).  

 

홈어시스턴트에 연결되어 있는 상태에서 알 수 있는 Key 값.

어쨌든 펌웨어 버전업은 해야 하므로, 수정된 펌웨어를 올리기 위하여 아직 버전업이 안된 상태이므로 telnet (포트 23번)으로 접속이 가능하고, PuTTY같은 것으로 접속합니다(아이디 admin 암호 없음). https://github.com/zvldz/mgl03_fw/tree/main/firmware 의 "Updating mgl03 gateway firmware via telnet" 부분의 3가지 명령을 내려주면 펌웨어를 고르는 화면이 나타납니다. 여기에서 8번 1.5.5_006_mod 펌웨어를 선택합니다. 

 

Gateway3에 telnet으로 접속하여 수정된 최신 펌웨어(8번) 업그레이드

업로드가 끝나면 Gateway3를 부팅 시킨 후 위 접속 화면은 사라집니다. 

 

이제 Mi Home 앱에서 펌웨어 정보를 보면 최신 버전(1.5.5_006으로 표시가 됩니다.) 

 

telnet으로 다시 접속해 보면 필요한 정보가 잘 나열되었습니다. 

 

수정된 최신 펌웨어로 접속하면 HA 접속에 필요한 토큰과 키 값이 잘 표시됨