본문 바로가기

IOT

일반 PC에서 투야 컨버터로 ESPHOME 올리기 (tuya convert)

지난번에 썼던 글에 이어서 실제로 로딩 완료된 걸 바탕으로 한번 더 적어요.

 

핵심은 라즈베리파이 없이 투야 컨버터로 투야 계열 ESP 칩이 들어간 제품에 ESPHOME (혹은 TASMOTA)를 쉽게 설치하는 방법입니다.

 

저번엔 vbox로 적었는데요. 저는 vbox에서 실패했습니다. AP가 만들어졌지만 접속이 되지 않는 문제가 있었어요.

아마도 vbox와 wifi 장치가 정확하게 인식되지 않는 문제가 있었던 것 같습니다. (혹은 드라이버)

 

vmware로 했더니 잘 되더라구요.

 

 

준비물 wifi 장치, PC

 

1. vmware player를 준비합니다. 개인용은 무료에요.

https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/15_0

 

64비트만 지원합니다.

 

2. kali 리눅스 이미지를 준비합니다.

https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/

 

 

32비트는 64비트든 상관없어보입니다만 전 그냥 64비트로 받았어요.

 

 

3. vmware를 설치하고 아까 받아둔 7z 파일을 원하는 위치로 옮기고 압축 해제합니다.

 

4. vmware에서 이미지를 가져옵시다.

 


 - open 머신하고 아까 압축을 푼 폴더에가면 vmx 파일이 있습니다.



- 이렇게 로딩이 완료되면 edit 들어가서 ram이나 기타 등등 한번 확인해보세요. 혹시나 share 폴더를 사용하시려면 여기서 세팅해야합니다.

 

5. kali linux를 실행합니다.

기본 계정은 root 비번은 toor 입니다.

터미널을 실행해서 이제 tuya-convert를 설치해봅시다.

 

https://github.com/M4dmartig4n/tuya-convert

 

6. 원하는 폴더에서 git clone을 합니다.

 

git clone https://github.com/ct-Open-Source/tuya-convert

그 다음 install 합니다.

이건 시간이 조금 걸려요. 한 5분?

# cd tuya-convert# ./install_prereq.sh

 

7. 설치가 끝나면 이제 wifi를 연결을 확인해봅시다.

- 상단에 연결 같아보이는 저걸 누르면 network 정보도 나옵니다. 아직 wifi가 없네요.

- Player > Removable Devices > WIFI 카드명 > Connect

 

- 이제 wifi 랜 카드가 잘 연결되었습니다. 그 다음은 이제 tuya convert를 실행해봅시다.

 

8. 아까 설치한 위치에서 실행합니다.

# ./start_flash.sh

- 처음 실행할 땐 yes를 누르고 ENTER하는 부분이 있습니다.

 

9. 이제 핸드폰이든 랩탑이든 새로 생긴 AP에 접속해봅니다.

- 최신 버전은 AP 비밀번호가 없어졌나 봅니다. 위와 같은 메시지가 나오면 AP가 실행되었습니다.

핸드폰에서 vtrust-flash라는 AP에 접속하면 "네트워크에 로그인"하면서 연결되었다는 메시지가 나옵니다.

 

 

 

10. 투야 제품을 페어링모드 (SMART WIFI)로 전환합니다. 보통은 버튼을 6초 누르면 됩니다. LED가 빠르게 깜빡입니다.

제가 구매한 네오쿨캠 플러그는 버튼을 6초 누르면 됩니다. 그리고 ENTER


- 그러면 이렇게 연결이 되고 기존 펌웨어가 백업 됩니다. 잠깐 기다리면

- 이렇게 연결 완료. N을 눌러서 여기서 나갑시다.

 

11. 이제 명령어를 보내봅시다.

# curl http://10.42.42.42

이렇게 연결된 제품의 정보가 나옵니다. 

여기서 따로 bin을 만들어서 보낼 수 있지만 나중에 OTA를 쓰는게 더 편하니까 일단 기본 sonoff로 씌워봅시다.

# curl http://10.42.42.42/flash3

이 명령을 보내보죠.

- 명령을 날리면 그냥 반응이 없어보이지만 펌웨어가 전송되는 중입니다. 잠시 기다리세요. 그러면 이렇게 덤핑이 끝나고 reboot 되어버립니다. 우선 여기서 투야 컨버터는 끝.

 

 

12. 이제 투야 제품은 AP 모드로 작동하고 있습니다. 다시 핸드폰이나 랩탑으로 제품 AP에 접속해봅시다.

이번엔 이름이 tasmota-1197로 나왔네요. 여기에 접속을 하면

 

- 이렇게 AP 정보를 적는 공간이 나옵니다. 집에서 사용중인 AP 정보를 입력합니다.

- 그렇게 이렇게 저장되고 리부팅. 그 다음엔 우리집 네트워크에 연결됩니다. 이제 ESPHOME을 준비해봅시다.

 

13. 저는 시놀로지 NAS에 도커로 사용하고 있습니다. 도커에 esphome을 추가해봅시다.


- 도커에서 esphome을 검색해서 다운로드하고 

 


- 다운받은 이미지를 실행합시다.


- 고급 설정에서 자동재시작도 체크하시고, 볼륨에서 config도 설정하시고, 네트워크는 동일 네트워크 체크

- 환경에서 하단 명령에 저부분을 넣어주어야 대시보드를 실행할때 패스워드가 적용됩니다.

 

/config dashboard --password {패스워드}

 

그 다음엔 적용

잘돌아갑니다. 이제 대시보드에 가봅시다.

 

 

14. ESPHOME 대시보드 접속하여 설정하기

기본 포트는 6052입니다. 저는 나스가 192.168.219.77 이니까 http://192.168.219.77:6052로 접속

 

그러면 이렇게 비밀번호를 물어보고 아까 설정한 값으로 들어갑니다.

 

오른쪽에 빨간 +를 눌러서 장치를 추가합시다.

이름은 사용하고 싶으신 이름대로 넣고 continue

 

device_type은 그냥 generic esp8266

 

사용할 AP의 SSID와 패스워드를 넣고 아래에는 앞으로 OTA할 때 확인할 패스워드를 넣습니다. (이 모든건 나중에 다 수정할 수 있습니다.)

 

그러면 끝.

 

이제 노드가 추가되었네요.

 

15. 노드의 yaml 파일을 편집해봅시다. 제가 쓰는 건 네오쿨캠 10A짜립니다.

 

https://cafe.naver.com/stsmarthome/10852

 

이 글을 참조하시면 도움이 많이 됩니다. 감사합니다.

 

EDIT를 눌러서 yaml 파일을 수정해봅시다.

 

제가 사용한 yaml 파일은 아래와 같습니다.

 

substitutions:

  node_name: plug_coolcam2

 

esphome:

  name: ${node_name}

  platform: ESP8266

  board: esp01_1m

 

binary_sensor:

  - platform: gpio

    pin:

      number: GPIO13

      mode: INPUT

      inverted: True

    name: "${node_name}_btn"

    on_press:

      - switch.toggle: switch1

      

output:

  - platform: gpio

    pin: GPIO12

    id: relay

  - platform: gpio

    pin: GPIO04

    inverted: True

    id: led1

    

switch:

- platform: gpio

  name: "${node_name}_Relay"

  id: switch1

  pin: GPIO12

  icon: mdi:power-socket-eu

  on_turn_on:

  - output.turn_on: led1

  on_turn_off:

  - output.turn_off: led1

    

sensor:

  - platform: uptime

    name: "${node_name}_uptime"

    icon: mdi:clock-outline

  - platform: wifi_signal

    name: "${node_name}_signal"

    update_interval: 60s

    

 

wifi나 ota api 등은 설정해둔 값 그대로 두시고 위와 같이 수정하시면 플러그의 기본 기능이 작동합니다.

(16A 짜리는 전력량 측정 GPIO가 있는데, 그건 위의 링크를 참조해주세요.)

 

편집 후에는 SAVE

 

 

16. ESPHOME BIN 파일 만들기

오른쪽 메뉴 버튼을 눌러서 컴파일하시고 컴파일이 완료되면 다운로드 바이너리하여 bin 파일을 저장합니다.

 

이제 아까 만들어둔 투야 제품에 tasmota를 올려둔 녀석에게 접속합니다.

IP를 알아야겠죠?

저는 IPTIME을 쓰니 관리자에 접속해봅니다.

 

 

- 아까 그 1197번이 저기 있네요. IP를 확인했으면 접속해봅시다.

우리는 ESPHOME으로 갑시다. 펌웨어 업그레이드

 

아랫쪽에 아까 다운로드 받은 bin 파일을 넣고 스타트. 그리고 잠시 기다리면 업로드 후에 재부팅됩니다. 잠시기다리죠.

 

- ESPHOME 대시보드에 온라인으로 들어왔습니다. 이제 끝났네요. :)

혹시라도 이제 yaml을 수정하려면 edit 눌러서 수정하고 바로 upload를 누르면 적용됩니다. 아주 편하죠.

 

 

17. HA에 연결하기.

이제 HA에 연결하는 건 아주 쉬워요.

 

설정 - 통합 구성요소에 들어가면 우리가 만든 그녀석이 보입니다. 설정하기를 누르고 우리가 아까 저장한 OTA 혹은 API 패스워드를 입력합니다.

 


설정된 구성요소에 잘 올라왔네요.


개발자도구 상태에서 찾아보죠. 명령도 아주 잘 먹습니다.

 

로컬로 붙여서 쓰니 좋네요. 

 

 

18. 이제 열심히 사용하면 됩니다.

조만간 digoo 3구 스위치도 올텐데 이것도 투야컨버트로 펌업해야겠어요. 너무 편합니다. :)

 

 

 

지금까지 까페에서 제가 도움 받았던 게 많아서 이번에 정리해봤습니다.

 

혹시라도 TTL이나 ssh 등이 좀 어려워서 망설이고 tuya 클라우드로 연결해서 쓰시는 분들 계시다면 도움이 되길 바랍니다.

 

두서없이 써서 내용이 좀 엉성하네요.

'IOT' 카테고리의 다른 글

IP CAM과 시놀로지 Surveillance Station, 그리고 HA  (0) 2021.03.05