라즈베리파이 + Docker + Mi Connector + SmartThings

category 서버/리눅스 서버 2019.07.31 22:26

안녕하세요? 일단 IOT 플랫폼으로 SmartThings 가 좋을 것 같아서 샤오미 제품을 연동해보려고 하고 있습니다.


라즈베리파이 --> Docker : Mi Connector --> ST 이런식으로 연동이 됩니다.


Home Assistant / Home Bridge 등의 방법이 있습니다만, 일단 ST를 스터디 중이라 가봅니다. ㅎㅎㅎ



ST를 위해서 지그비 허브(게이트웨이)를 가지고 있는 상태이며 IOT는 크게 와이파이 / 블루투스 / 지그비 방식이 있음으로 ST 지그비 허브만 있으면 아무래도 거의 모든게 가능하지 않을까 합니다.


아직 초짜임으로 차후에 스터디를 더 한 다음이면 글이 더 정제되어 새로 작성될 것입니다.



1. 라즈베리파이 기초 세팅


(친구가 헐값에 준 라즈2 .. 이때 쓰네요..)



운영체제 설치하시고 boot 파티션에 ssh 파일 추가


로그인 하신 다음 작업하시면 됩니다.


raspi-config 으로 설정하실 것들 세팅해주시길 바랍니다.


일단 apt 가 굉장히 느리기 때문에 아래와 같이 source.list 를 수정합니다.


deb http://ftp.kaist.ac.kr/raspbian/raspbian/ buster main contrib non-free rpi


다음으로 docker 를 설치합니다.


root@raspberrypi:~# apt install apt-transport-https ca-certificates software-properties-common -y

root@raspberrypi:~# curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh


2. Mi-Connector 설치


https://github.com/fison67/mi_connector


아기나무집님께 감사의 말씀을 드립니다.


# 설정 저장 폴더 생성 및 이미지 다운

root@raspberrypi:~# mkdir /home/miconnector

root@raspberrypi:~# docker pull fison67/mi-connector-arm:latest


(어우야.. SD카드에 운영체제가 있어서 너무 오래 걸립니다.)


아래의 명령으로 컨테이너를 실행합니다.


root@raspberrypi:~# docker run --detach --volume /home/miconnector:/config --net=host --restart=always --name miconnector fison67/mi-connector-arm:latest

ba0eaf17249dd49acbcd0571ecd7ffac01f2223797fca9693a00dbaf5fe4dcb3


다음으로 그래프를 보려면 mysql 이 필요합니다. 아래와 같이 설정합니다.


비밀번호는 신경쓰지 않으셔도 됩니다. 로컬에서만 사용할 것이기 때문입니다. 혹시 밖에서 DB 접속을 해야한다면... 비번을 설정하시길 바랍니다.


root@raspberrypi:~# docker pull jsurf/rpi-mariadb:latest

root@raspberrypi:~# docker run --detach --name mariadb --restart=always -e MYSQL_ROOT_PASSWORD=password -e TZ=Asia/Seoul -p 33006:3306 -d jsurf/rpi-mariadb


실행중인지 확인합니다.


root@raspberrypi:~# docker ps -a

CONTAINER ID        IMAGE                             COMMAND                  CREATED              STATUS              PORTS                     NAMES

3b9c7ff8cb56        jsurf/rpi-mariadb                 "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:33006->3306/tcp   mariadb

ba0eaf17249d        fison67/mi-connector-arm:latest   "/usr/bin/entry.sh /…"   8 minutes ago        Up 8 minutes                                  miconnector


3. Mi-Connector 기초 세팅


https://rpi-ip-addr:30000/



일단 잘 설치가 되었습니다. DB가 연결이 잘 되는지 확인합니다.


설정 --> 설정 --> DB설정에 이동해서 등록을 누릅니다. 


상기에 mysql 비번이.. password로 사전에 맞춰놔서 기본 설정으로도 잘 작동합니다.



로그를 확인합니다. 아래와 같이 DB 연결이 성공하였습니다.



4. 디바이스 세팅


저는 미에어2S 와 샤오미IR블라스터 2개를 가지고 있습니다.


연동을 해보겠습니다.


일단 큰일났습니다. 자동으로 알아채지 못하네요..



음 폭풍 자료 서칭을 해봅니다.


아무래도 수동 등록을 해야겠습니다.


미컨넥터를 수동모드로 바꿉니다.



토큰은 mirobo로 스캔을 돌려야겠네요.


root@raspberrypi:/home/miconnector# apt install npm

root@raspberrypi:/home/miconnector# npm install -g miio


다음으로 스캔돌려 토큰을 찾아봅니다.


root@raspberrypi:/home/miconnector# miio discover

 INFO  Discovering devices. Press Ctrl+C to stop.


Device ID: 77398861

Model info: Unknown

Address: 192.168.0.3

Token: ???

Support: Unknown


Device ID: 106547825

Model info: Unknown

Address: 192.168.0.13

Token: ???

Support: Unknown



상기처럼 토큰이 안나옵니다. ㅠㅠ 음.. 이게 왜 이런지는 모르겠는데 구식의 방법을 사용해야 할지.. 고민이 크게 드네요.


방법 2번째 ... 안드로이드 미홈앱을 구버전을 설치하고.. 


https://android-apk.app/com.xiaomi.smarthome/43397902-mi-home/


로그인 하신 다음에 /sdcard/SmartHome/logs/Plug_Devicemanager/ 경로의 파일을 읽습니다.



하기의 방법으로 수동 등록을 진행합니다.



수동 등록 후 대시보드에 잘 나옵니다.




5. ST 연동하기



















댓글을 달아 주세요