From 4e3ce807251afc37070b1577ed95fddb9058847b Mon Sep 17 00:00:00 2001 From: Heesik Shin Date: Thu, 9 Sep 2021 19:06:51 +0900 Subject: [PATCH] support B400-W (Smart Solar Power Generation Plug) --- custom_components/dawon/Dawon.jar | Bin 4141 -> 4463 bytes .../src/main/java/com/stkang90/Main.java | 26 ++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/custom_components/dawon/Dawon.jar b/custom_components/dawon/Dawon.jar index debe22bfff6d839de8119e081005be9d754a9283..0298bed3f776cf5235780788feb032aad6164651 100644 GIT binary patch delta 4006 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 M4?6}f5C8xG0AnS>W&i*H delta 3681 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 diff --git a/custom_components/dawon/dawon/src/main/java/com/stkang90/Main.java b/custom_components/dawon/dawon/src/main/java/com/stkang90/Main.java index 85f0c16..8629e23 100644 --- a/custom_components/dawon/dawon/src/main/java/com/stkang90/Main.java +++ b/custom_components/dawon/dawon/src/main/java/com/stkang90/Main.java @@ -20,13 +20,16 @@ public class Main { private static String deviceIp = "192.168.43.1"; private static int devicePort = 5000; + private static String deviceModelName = "B540-WF"; + private static String deviceModel = "B5X"; + private static Scanner sc; public static void main(String[] args) { System.out.println("###############################################"); System.out.println("######### [Dawon Dns 스마트 플러그 설정 툴] #########"); System.out.println("###############################################"); - System.out.println("## 테스트 성공 모델: Smart Plug(B530-WF/B540-WF) ##"); + System.out.println("## 테스트 성공 모델: Smart Plug(B530-WF/B540-WF), Smart Solar Power Generation Plug(B400-W) ##"); System.out.println(); sc = new Scanner(System.in); @@ -54,8 +57,8 @@ public static void main(String[] args) { System.out.println("연결 성공"); DataOutputStream bufferedWriter = new DataOutputStream(socket.getOutputStream()); - String dataFormat = "{\"server_addr\":\"%s\",\"server_port\":\"%d\",\"ssl_support\":\"no\",\"ssid\":\"%s\",\"pass\":\"%s\",\"mqtt_key\":\"%s\",\"company\":\"DAWONDNS\",\"model\":\"B5X\",\"topic\":\"dwd\"}"; - String sendData = String.format(dataFormat, mqttIp, mqttPort, wifiName, wifiPasswd, mqttPasswd); + String dataFormat = "{\"server_addr\":\"%s\",\"server_port\":\"%d\",\"ssl_support\":\"no\",\"ssid\":\"%s\",\"pass\":\"%s\",\"mqtt_key\":\"%s\",\"company\":\"DAWONDNS\",\"model\":\"%s\",\"topic\":\"dwd\"}"; + String sendData = String.format(dataFormat, mqttIp, mqttPort, wifiName, wifiPasswd, mqttPasswd, deviceModel); System.out.println("SendData: " + sendData); (new PrintWriter(bufferedWriter, true)).println(sendData); @@ -114,8 +117,24 @@ private static boolean inputInfoData() { System.out.println("MQTT 서버 비밀번호를 입력하세요. (1234 입력 권장)"); mqttPasswd = sc.next(); + System.out.println("##############################"); + System.out.println(); System.out.println("#### [디바이스(스마트 플러그) 설정] ###"); + System.out.println("디바이스 모델명를 입력하세요. (기본값: B540-WF) 지원 모델: B530-WF/B540-WF/B400-W"); + deviceModelName = sc.next(); + if (deviceModelName == null || deviceModelName.length() == 0) { + deviceModelName = "B540-WF"; + } + if (deviceModelName.equalsIgnoreCase("B540-WF") || deviceModelName.equalsIgnoreCase("B530-WF")) { + deviceModel = "B5X"; + } else if (deviceModelName.equalsIgnoreCase("B400-W")) { + deviceModel = "B400_SW"; + } else { + System.out.println("[오류] - 지원하지 않는 디바이스 모델 입니다."); + return false; + } + System.out.println("디바이스 주소(IP)를 입력하세요. (IPv4) (기본값: " + deviceIp + ")"); deviceIp = sc.next(); if (deviceIp == null || deviceIp.length() == 0) { @@ -145,6 +164,7 @@ private static boolean checkInfoData() { System.out.println(String.format("MQTT IP: %s", mqttIp)); System.out.println(String.format("MQTT 포트: %d", mqttPort)); System.out.println(String.format("MQTT 비밀번호: %s", mqttPasswd)); + System.out.println(String.format("디바이스 모델명: %s (%s)", deviceModelName, deviceModel)); System.out.println(String.format("디바이스 IP: %s", deviceIp)); System.out.println(String.format("디바이스 포트: %d", devicePort)); System.out.println();