본문 바로가기
IoT

다원 와이파이 플러그 로컬 컨트롤 설정하기 (stkang90 님)

by ㅋㅋ잠자 2020. 7. 2.
반응형

안녕하세요? 도정진입니다.


최근에 아래의 글을 올려드린 적이 있죠.


https://blog.djjproject.com/660


ha korea 카페의 stkang90 님이 만드신 프로그램으로 mqtt 서버를 저희 서버로 돌리는 방법으로 로컬 컨트롤을 하는 방법을 올려주셨습니다.


https://cafe.naver.com/koreassistant/1977


자 그럼 시작합니다.





1. 다원 플러그 초기화


다원 플러그를 초기화 하는 방법은 아래와 같습니다.


1. 스위치를 꾹 누름

2. LED 빨리 깜박임

3. 계속 누름

4. LED 2번째로 빨리 깜박임

5. 손을 땜

6. LED 가 번쩍 번쩍 함

7. 플러그 콘센트에서 분리

8. 재연결


이런식으로 하셔야 완벽하게 초기화가 됩니다.





2. java 8 버전 다운로드


저는 Beelink GTMINI 셋탑박스에서 리눅스를 설치한 상태로 서버를 운영중인데.. 그 환경에서 작업할 예정입니다.


https://blog.djjproject.com/618

https://blog.djjproject.com/653


한타에 USB 2.0 3.0 / GMAC / WIFI / BT 를 활용할 수 있습니다.


자 그럼, 일단 자바를 받아보겠습니다.


대충 하기 URL 에서 받고 /opt 에 적절히 풀어줍니다. (java 8을 써야하는지는 잘 모르겠습니다. 제가 subsonic 때문에 사용하고 있어서..)


https://github.com/AdoptOpenJDK/openjdk8-binaries/releases





3. dawon.jar 실행


실행하기에 앞서 와이파이에 연결합니다.


root@aml:/media/data# armbian-config


와이파이는 하기와 같이 쉽게 연결 가능합니다.





root@aml:~# ifconfig

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255

        inet6 fe80::42:f3ff:fe41:817d  prefixlen 64  scopeid 0x20<link>

        ether 02:42:f3:41:81:7d  txqueuelen 0  (Ethernet)

        RX packets 15  bytes 1479 (1.4 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 609  bytes 73587 (71.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.17  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::9baa:bab2:590c:85d8  prefixlen 64  scopeid 0x20<link>

        ether 02:00:00:23:03:01  txqueuelen 1000  (Ethernet)

        RX packets 7450231  bytes 9623363144 (8.9 GiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 5304035  bytes 3402802804 (3.1 GiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        device interrupt 6  


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1000  (Local Loopback)

        RX packets 19876  bytes 9131933 (8.7 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 19876  bytes 9131933 (8.7 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


veth076238c: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet6 fe80::b00d:c7ff:fec6:4d04  prefixlen 64  scopeid 0x20<link>

        ether b2:0d:c7:c6:4d:04  txqueuelen 0  (Ethernet)

        RX packets 15  bytes 1689 (1.6 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 624  bytes 74733 (72.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.43.2  netmask 255.255.255.0  broadcast 192.168.43.255

        inet6 fe80::955a:267e:7885:2544  prefixlen 64  scopeid 0x20<link>

        ether 6c:21:a2:ed:2c:0f  txqueuelen 1000  (Ethernet)

        RX packets 12  bytes 4776 (4.6 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 101  bytes 15942 (15.5 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


root@aml:~#


다음으로 dawon.jar 을 실행합니다.


root@aml:~# java -jar /media/data/dawon.jar 

###############################################

######### [Dawon Dns 스마트 플러그 설정 툴] #########

###############################################

## 테스트 성공 모델: Smart Plug(B530-WF/B540-WF) ##


######### [WIFI 설정] #########

WIFI 이름을 입력하세요.

DJJ_AP

WIFI 비밀번호을 입력하세요. (8자리 이상)

12345678

##############################


######### [MQTT 설정] #########

MQTT 서버 주소(IP or Domain)를 입력하세요

192.168.0.17

MQTT 서버 포트를 입력하세요. (기본값: 1883)

1883

MQTT 서버 비밀번호를 입력하세요. (1234 입력 권장)

1234

#### [디바이스(스마트 플러그) 설정] ###

디바이스 주소(IP)를 입력하세요. (IPv4) (기본값: 192.168.43.1)

192.168.43.1

디바이스 포트를 입력하세요. (기본값: 5000)

5000


########## [설정 확인] #########

WIFI 이름: DJJ_AP

WIFI 비밀번호: 12345678

MQTT IP: 192.168.0.17

MQTT 포트: 1883

MQTT 비밀번호: 1234

디바이스 IP: 192.168.43.1

디바이스 포트: 5000


위 설정이 맞습니까? (y/n)

y

설정 완료


연결 시도 중입니다.

연결 성공

SendData: {"server_addr":"192.168.0.17","server_port":"1883","ssl_support":"no","ssid":"DJJ_AP","pass":"12345678","mqtt_key":"1234","company":"DAWONDNS","model":"B5X","topic":"dwd"}

#### 성공 ####


정상적으로 성공하였다면, 플러그의 전등이 깜박이지 않아야 합니다.





4. 홈 어시스턴트에 등록


# sensor

- platform: mqtt

  name: "6ac63ad2ae04_sensor"

  unit_of_measurement: "W" 

  state_topic: "dwd.v1/DAWONDNS-B5X-6ac63ad2ae04/iot-server/notify/json"

  value_template: >-

    {% if value_json.sid == '2' %}

      {{ value_json.msg.e[1].sv | float | round(2) }}

    {% elif value_json.sid == '1' %}

      {{ value_json.msg.e[3].sv | float | round(2) }}

    {% else %}

      {{ states('sensor.6ac63ad2ae04_sensor') }}

    {% endif %}


# switch

- platform: mqtt

  name: "6ac63ad2ae04_switch"

  command_topic: "dwd.v1/iot-server/DAWONDNS-B5X-6ac63ad2ae04/execute/json"

  state_topic: "dwd.v1/DAWONDNS-B5X-6ac63ad2ae04/iot-server/notify/json"

  payload_on: '{"sid":"2","msg":{"o":"e","e":[{"n":"/100/0/31","sv":"true","r":"","ti":"1593516756"}]}}'

  payload_off: '{"sid":"2","msg":{"o":"e","e":[{"n":"/100/0/31","sv":"false","r":"","ti":"1593516756"}]}}'

  state_on: 'on'

  state_off: 'off'

  value_template: >-

    {% if value_json.sid == '2' %}

      {% if value_json.msg.e[0].sv == 'true' %}

        on 

      {% else %}

        off 

      {% endif %} 

    {% else %}

    {% endif %}


# automation

- alias: 'power refresh 6ac63ad2ae04'

  trigger:

    platform: time_pattern

    seconds: '/5'

  action:

    - service: mqtt.publish

      data_template:

        topic: "dwd.v1/iot-server/DAWONDNS-B5X-6ac63ad2ae04/read/json"

        payload: '{"sid":"2","msg":{"o":"r","e":[{"n":"/100/0/31","ti":"1593516756"},{"n":"/100/0/11","ti":"1593516556"}]}}'


이후 값이 정상적으로 올라옵니다.




stkang90님 정말 감사합니다.


새생명을 불어 넣어 주셨습니다.


여기까지 마치겠습니다.


감사합니다.



반응형

댓글