Pārlūkot izejas kodu

동탄아이파크 현장 적용본

pangs 5 gadi atpakaļ
vecāks
revīzija
eede416d59

+ 9 - 5
src/main/java/com/icontrols/kakao/common/THINGS_INFO.java

@@ -57,29 +57,33 @@ public final class THINGS_INFO {
 		LIGHT02						("light02",						"Light",			"방1조명"),
 		LIGHT02						("light02",						"Light",			"방1조명"),
 		LIGHT03						("light03",						"Light",			"방2조명"),
 		LIGHT03						("light03",						"Light",			"방2조명"),
 		LIGHT04						("light04",						"Light",			"방3조명"),
 		LIGHT04						("light04",						"Light",			"방3조명"),
+		LIGHT05						("light05",						"Light",			"방4조명"),
 		DIMMER_LIVINGLIGHT			("dimmer_livinglight", 			"LightDimmer", 		"거실조명"),
 		DIMMER_LIVINGLIGHT			("dimmer_livinglight", 			"LightDimmer", 		"거실조명"),
 		DIMMER_LIGHT01				("dimmer_light01",				"LightDimmer",		"주방조명"),
 		DIMMER_LIGHT01				("dimmer_light01",				"LightDimmer",		"주방조명"),
 		DIMMER_LIGHT02				("dimmer_light02",				"LightDimmer",		"방1조명"),
 		DIMMER_LIGHT02				("dimmer_light02",				"LightDimmer",		"방1조명"),
 		DIMMER_LIGHT03				("dimmer_light03",				"LightDimmer",		"방2조명"),
 		DIMMER_LIGHT03				("dimmer_light03",				"LightDimmer",		"방2조명"),
 		DIMMER_LIGHT04				("dimmer_light04",				"LightDimmer",		"방3조명"),
 		DIMMER_LIGHT04				("dimmer_light04",				"LightDimmer",		"방3조명"),
+		DIMMER_LIGHT05				("dimmer_light05",				"LightDimmer",		"방4조명"),
 		COLOR_DIMMER_LIVINGLIGHT	("colorDimmer_livinglight", 	"ColorLightDimmer",	"거실조명"),
 		COLOR_DIMMER_LIVINGLIGHT	("colorDimmer_livinglight", 	"ColorLightDimmer",	"거실조명"),
 		COLOR_DIMMER_LIGHT01		("colorDimmer_light01",			"ColorLightDimmer",	"주방조명"),
 		COLOR_DIMMER_LIGHT01		("colorDimmer_light01",			"ColorLightDimmer",	"주방조명"),
 		COLOR_DIMMER_LIGHT02		("colorDimmer_light02",			"ColorLightDimmer",	"방1조명"),
 		COLOR_DIMMER_LIGHT02		("colorDimmer_light02",			"ColorLightDimmer",	"방1조명"),
 		COLOR_DIMMER_LIGHT03		("colorDimmer_light03",			"ColorLightDimmer",	"방2조명"),
 		COLOR_DIMMER_LIGHT03		("colorDimmer_light03",			"ColorLightDimmer",	"방2조명"),
 		COLOR_DIMMER_LIGHT04		("colorDimmer_light04",			"ColorLightDimmer",	"방3조명"),
 		COLOR_DIMMER_LIGHT04		("colorDimmer_light04",			"ColorLightDimmer",	"방3조명"),
+		COLOR_DIMMER_LIGHT05		("colorDimmer_light05",			"ColorLightDimmer",	"방4조명"),
 		VENTIL						("ventil",						"AirVentilator",	"환기"),
 		VENTIL						("ventil",						"AirVentilator",	"환기"),
 		GAS							("gas",							"GasValve",			"가스밸브"),
 		GAS							("gas",							"GasValve",			"가스밸브"),
 		ELEVATOR					("elevator",					"ElevatorCaller",	"엘리베이터"),
 		ELEVATOR					("elevator",					"ElevatorCaller",	"엘리베이터"),
 		TEMPER1						("temper_1",					"FloorHeater",		"거실난방"),
 		TEMPER1						("temper_1",					"FloorHeater",		"거실난방"),
-		TEMPER2						("temper_2",					"FloorHeater",		"방난방"),
-		TEMPER3						("temper_3",					"FloorHeater",		"방1난방"),
-		TEMPER4						("temper_4",					"FloorHeater",		"방2난방"),
-		TEMPER5						("temper_5",					"FloorHeater",		"방3난방"),
+		TEMPER2						("temper_2",					"FloorHeater",		"방1난방"),
+		TEMPER3						("temper_3",					"FloorHeater",		"방2난방"),
+		TEMPER4						("temper_4",					"FloorHeater",		"방3난방"),
+		TEMPER5						("temper_5",					"FloorHeater",		"방4난방"),
 		ELECTRIC01					("electric01",					"PowerOutlet",		"거실콘센트"),
 		ELECTRIC01					("electric01",					"PowerOutlet",		"거실콘센트"),
 		ELECTRIC02					("electric02",					"PowerOutlet",		"주방콘센트"),
 		ELECTRIC02					("electric02",					"PowerOutlet",		"주방콘센트"),
 		ELECTRIC03					("electric03",					"PowerOutlet",		"방1콘센트"),
 		ELECTRIC03					("electric03",					"PowerOutlet",		"방1콘센트"),
 		ELECTRIC04					("electric04",					"PowerOutlet",		"방2콘센트"),
 		ELECTRIC04					("electric04",					"PowerOutlet",		"방2콘센트"),
-		ELECTRIC05					("electric05",					"PowerOutlet",		"방3콘센트")
+		ELECTRIC05					("electric05",					"PowerOutlet",		"방3콘센트"),
+		ELECTRIC06					("electric06",					"PowerOutlet",		"방4콘센트")
 		;
 		;
 		
 		
 		
 		

+ 2 - 0
src/main/java/com/icontrols/kakao/controller/AccessTokenController.java

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import com.icontrols.kakao.common.utils.CommonUtil;
 import com.icontrols.kakao.service.AccessTokenService;
 import com.icontrols.kakao.service.AccessTokenService;
 
 
 @RestController
 @RestController
@@ -57,6 +58,7 @@ public class AccessTokenController {
 		
 		
 		retMap.put("id", reqId);
 		retMap.put("id", reqId);
 		retMap.put("type", type);
 		retMap.put("type", type);
+		logger.info("[accessToken] RESULT - " + retMap.toString());
 		return retMap;
 		return retMap;
 	}
 	}
 }
 }

+ 1 - 1
src/main/java/com/icontrols/kakao/controller/KakaoDanziController.java

@@ -103,7 +103,7 @@ public class KakaoDanziController {
 				retMap = params;
 				retMap = params;
 			}
 			}
 		}catch(Exception e) {
 		}catch(Exception e) {
-			logger.error("[Unknown ERROR]");
+			logger.error("[Unknown ERROR]" + e.getMessage());
 			e.printStackTrace();
 			e.printStackTrace();
 			retMap = KAKAO_RESULT.getErrorInfo(KAKAO_RESULT.FAIL_INTERNAL);
 			retMap = KAKAO_RESULT.getErrorInfo(KAKAO_RESULT.FAIL_INTERNAL);
 		}finally {
 		}finally {

+ 33 - 22
src/main/java/com/icontrols/kakao/service/impl/AccessTokenServiceImpl.java

@@ -23,10 +23,10 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 	private final Logger logger = LoggerFactory.getLogger(AccessTokenServiceImpl.class);
 	private final Logger logger = LoggerFactory.getLogger(AccessTokenServiceImpl.class);
 	
 	
 	
 	
-	private final String ERROR_CODE_INTERNAL = "InternalServerError";
-	private final String ERROR_UNLINK_SERVICE = "UnlinkService";
-	private final String ERROR_TOKEN_NONE_EXIST = "TokenNoneExistent";
-	private final String ERROR_ALREADY_CREATED_TOKEN = "AlreadyCreatedToken";
+//	private final String ERROR_CODE_INTERNAL = "InternalServerError";
+//	private final String ERROR_UNLINK_SERVICE = "UnlinkService";
+//	private final String ERROR_TOKEN_NONE_EXIST = "TokenNoneExistent";
+//	private final String ERROR_ALREADY_CREATED_TOKEN = "AlreadyCreatedToken";
 	
 	
 	@Autowired
 	@Autowired
 	DonghoInfoRepository donghoRepo;
 	DonghoInfoRepository donghoRepo;
@@ -82,7 +82,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			
 			
 			if(uList.size() > 0) {
 			if(uList.size() > 0) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				errMap.put("message", ERROR_ALREADY_CREATED_TOKEN);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getMessage());
+//				errMap.put("message", ERROR_ALREADY_CREATED_TOKEN);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[CREATE] - [ERROR] - ALREADY CREATED TOKEN");
 				logger.error("[AccessTokenService]-[CREATE] - [ERROR] - ALREADY CREATED TOKEN");
@@ -101,7 +103,8 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 		
 		
 		}catch(Exception e) {
 		}catch(Exception e) {
 			Map<String, Object> errMap = new HashMap<String, Object>();
 			Map<String, Object> errMap = new HashMap<String, Object>();
-			errMap.put("message", ERROR_CODE_INTERNAL);
+			errMap.put("code", KAKAO_RESULT.CODE.FAIL_INTERNAL.getResultCode());
+			errMap.put("message", KAKAO_RESULT.CODE.FAIL_INTERNAL.getMessage());
 			
 			
 			retMap.put("error", errMap);
 			retMap.put("error", errMap);
 			logger.error("[AccessTokenService]-[CREATE] - [ERROR] - " + e.getMessage());
 			logger.error("[AccessTokenService]-[CREATE] - [ERROR] - " + e.getMessage());
@@ -132,8 +135,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			// 1.1 DonghoInfo가 없으면 ERROR Return
 			// 1.1 DonghoInfo가 없으면 ERROR Return
 			if(userInfoList.size() == 0) {
 			if(userInfoList.size() == 0) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				
-				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getMessage());
+//				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST1");
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST1");
@@ -145,8 +149,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			logger.debug("prev dongho = " + userInfo.getDonghoInfo().getDonghoId() + "_ NEW dongho = " + dong_ho);
 			logger.debug("prev dongho = " + userInfo.getDonghoInfo().getDonghoId() + "_ NEW dongho = " + dong_ho);
 			if(!userInfo.getDonghoInfo().getDonghoId().equals(dong_ho)) {
 			if(!userInfo.getDonghoInfo().getDonghoId().equals(dong_ho)) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				
-				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getMessage());
+//				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST2");
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST2");
@@ -155,8 +160,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			
 			
 			if(userInfo.getDeleteFlag().equals("Y")) {
 			if(userInfo.getDeleteFlag().equals("Y")) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				
-				errMap.put("message", ERROR_UNLINK_SERVICE);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_UNLINKEXTENSION_SERVICE.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_UNLINKEXTENSION_SERVICE.getMessage());
+//				errMap.put("message", ERROR_UNLINK_SERVICE);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - UNLINK TOKEN - " + userInfo.getDeleteType());
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - UNLINK TOKEN - " + userInfo.getDeleteType());
@@ -170,8 +176,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			userInfoRepo.save(userInfo);
 			userInfoRepo.save(userInfo);
 		}catch(Exception e) {
 		}catch(Exception e) {
 			Map<String, Object> errMap = new HashMap<String, Object>();
 			Map<String, Object> errMap = new HashMap<String, Object>();
-			
-			errMap.put("message", ERROR_CODE_INTERNAL);
+			errMap.put("code", KAKAO_RESULT.CODE.FAIL_INTERNAL.getResultCode());
+			errMap.put("message", KAKAO_RESULT.CODE.FAIL_INTERNAL.getMessage());
+//			errMap.put("message", ERROR_CODE_INTERNAL);
 			logger.error("[AccessTokenService] - [REFRESH] - [ERROR] - " + e.getMessage());
 			logger.error("[AccessTokenService] - [REFRESH] - [ERROR] - " + e.getMessage());
 			retMap.put("error", errMap);
 			retMap.put("error", errMap);
 			e.printStackTrace();
 			e.printStackTrace();
@@ -199,8 +206,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			// 1.1 DonghoInfo가 없으면 ERROR Return
 			// 1.1 DonghoInfo가 없으면 ERROR Return
 			if(userList.size() == 0) {
 			if(userList.size() == 0) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				
-				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getMessage());
+//				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST");
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST");
@@ -212,8 +220,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			// 호옥시이나아 같은 동호가 아닐 수도 있으니깐
 			// 호옥시이나아 같은 동호가 아닐 수도 있으니깐
 			if(!userInfo.getDonghoInfo().getDonghoId().equals(dong_ho)) {
 			if(!userInfo.getDonghoInfo().getDonghoId().equals(dong_ho)) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				
-				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getMessage());
+//				errMap.put("message", ERROR_TOKEN_NONE_EXIST);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST");
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - TOKEN NONE EXIST");
@@ -222,8 +231,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			
 			
 			if(userInfo.getDeleteFlag().equals("Y")) {
 			if(userInfo.getDeleteFlag().equals("Y")) {
 				Map<String, Object> errMap = new HashMap<String, Object>();
 				Map<String, Object> errMap = new HashMap<String, Object>();
-				
-				errMap.put("message", ERROR_UNLINK_SERVICE);
+				errMap.put("code", KAKAO_RESULT.CODE.FAIL_UNLINKEXTENSION_SERVICE.getResultCode());
+				errMap.put("message", KAKAO_RESULT.CODE.FAIL_UNLINKEXTENSION_SERVICE.getMessage());
+//				errMap.put("message", ERROR_UNLINK_SERVICE);
 				
 				
 				retMap.put("error", errMap);
 				retMap.put("error", errMap);
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - UNLINK TOKEN - " + userInfo.getDeleteType());
 				logger.error("[AccessTokenService]-[REFRESH] - [ERROR] - UNLINK TOKEN - " + userInfo.getDeleteType());
@@ -238,8 +248,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 			}
 			}
 		}catch(Exception e) {
 		}catch(Exception e) {
 			Map<String, Object> errMap = new HashMap<String, Object>();
 			Map<String, Object> errMap = new HashMap<String, Object>();
-			
-			errMap.put("message", ERROR_TOKEN_NONE_EXIST);
+			errMap.put("code", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getResultCode());
+			errMap.put("message", KAKAO_RESULT.CODE.FAIL_INVALID_TOKEN.getMessage());
+//			errMap.put("message", ERROR_TOKEN_NONE_EXIST);
 			
 			
 			retMap.put("error", errMap);
 			retMap.put("error", errMap);
 		}finally {
 		}finally {

+ 10 - 8
src/main/java/com/icontrols/kakao/socket/wallpad/KakaoMsgHandler.java

@@ -184,11 +184,11 @@ public class KakaoMsgHandler {
 									String childName = j < 10 ? tmpModelId+"0"+j : tmpModelId+j;
 									String childName = j < 10 ? tmpModelId+"0"+j : tmpModelId+j;
 									Node childNode = (Node)xpath.evaluate("//imap/service/devinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODE);
 									Node childNode = (Node)xpath.evaluate("//imap/service/devinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODE);
 									logger.debug("childName = " + childName);
 									logger.debug("childName = " + childName);
-									childCount = Integer.parseInt(XmlUtil.getAttributeWithItem(childNode, "value"));
+									int tmpChildCount = Integer.parseInt(XmlUtil.getAttributeWithItem(childNode, "value"));
 									
 									
 									NodeList childList = (NodeList)xpath.evaluate("//imap/service/devinfo/subdevinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODESET);
 									NodeList childList = (NodeList)xpath.evaluate("//imap/service/devinfo/subdevinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODESET);
 									
 									
-									thingList.addAll(getChildThingsInfoList(dong, ho, childCount, childList));
+									thingList.addAll(getChildThingsInfoList(dong, ho, tmpChildCount, childList));
 								}
 								}
 							}else {
 							}else {
 								NodeList childList = (NodeList)xpath.evaluate("//imap/service/devinfo/*[@name='"+ tmpModelId +"']", doc, XPathConstants.NODESET);
 								NodeList childList = (NodeList)xpath.evaluate("//imap/service/devinfo/*[@name='"+ tmpModelId +"']", doc, XPathConstants.NODESET);
@@ -255,7 +255,7 @@ public class KakaoMsgHandler {
 						int childCount = Integer.parseInt(XmlUtil.getAttributeWithItem(pNode, "value"));
 						int childCount = Integer.parseInt(XmlUtil.getAttributeWithItem(pNode, "value"));
 						
 						
 						List<Map<String, Object>> childNodeInfoList = null;
 						List<Map<String, Object>> childNodeInfoList = null;
-						logger.debug("tmpModelID --> " + tmpModelId);
+						logger.debug("tmpModelID --> " + tmpModelId + "childCount = " + childCount);
 						try {
 						try {
 							// subdevinfo 를 가지고 있는 THINGS일 경우는 subdevinfo 들을 다시 구해야 한다.
 							// subdevinfo 를 가지고 있는 THINGS일 경우는 subdevinfo 들을 다시 구해야 한다.
 							// 예를들어 light는 light01 ~ 05 등의 subdevinfo를 가진다.
 							// 예를들어 light는 light01 ~ 05 등의 subdevinfo를 가진다.
@@ -274,19 +274,19 @@ public class KakaoMsgHandler {
 								for(int j=1; j <= childCount; j++) {
 								for(int j=1; j <= childCount; j++) {
 									String childName = j < 10 ? tmpModelId+"0"+j : tmpModelId+j;
 									String childName = j < 10 ? tmpModelId+"0"+j : tmpModelId+j;
 									Node childNode = (Node)xpath.evaluate("//imap/service/devinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODE);
 									Node childNode = (Node)xpath.evaluate("//imap/service/devinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODE);
-									logger.debug("childName = " + childName);
+									logger.debug("childName = " + childName + " // j = " + j);
 									
 									
-									if(childNode == null) break;
+									if(childNode == null) continue;
 									
 									
 									String tmpValue = XmlUtil.getAttributeWithItem(childNode, "value");
 									String tmpValue = XmlUtil.getAttributeWithItem(childNode, "value");
 									
 									
-									if(tmpValue == null) break;
+									if(tmpValue == null) continue;
 									
 									
-									childCount = Integer.parseInt(tmpValue);
+									int tmpchildCount = Integer.parseInt(tmpValue);
 									
 									
 									NodeList childList = (NodeList)xpath.evaluate("//imap/service/devinfo/subdevinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODESET);
 									NodeList childList = (NodeList)xpath.evaluate("//imap/service/devinfo/subdevinfo/*[@name='"+ childName +"']", doc, XPathConstants.NODESET);
 									
 									
-									childNodeInfoList = getChildDeviceInfo(childCount, childList);
+									childNodeInfoList = getChildDeviceInfo(tmpchildCount, childList);
 									logger.debug("child-->>" + childNodeInfoList.toString());
 									logger.debug("child-->>" + childNodeInfoList.toString());
 									if(childNodeInfoList != null)
 									if(childNodeInfoList != null)
 										childNodeInfoList.forEach(tMap -> { body.putAll(tMap); });
 										childNodeInfoList.forEach(tMap -> { body.putAll(tMap); });
@@ -754,6 +754,8 @@ public class KakaoMsgHandler {
 				if(capability.equals("Power") && desired.containsKey("power")) {
 				if(capability.equals("Power") && desired.containsKey("power")) {
 					String tmpState = (String)desired.get("power");
 					String tmpState = (String)desired.get("power");
 					if(tmpState.equals("on") || tmpState.equals("off")) sb.append(tmpState);
 					if(tmpState.equals("on") || tmpState.equals("off")) sb.append(tmpState);
+					
+					sb.append("/null/null");
 				}
 				}
 				
 				
 				break;
 				break;

+ 2 - 1
src/main/java/com/icontrols/kakao/socket/wallpad/WallpadMsgSender.java

@@ -158,7 +158,8 @@ public class WallpadMsgSender {
 			StringBuffer sb = new StringBuffer();
 			StringBuffer sb = new StringBuffer();
 			
 			
 			sb.append(XMLGenerator.MakeXMLHeaderForNotice(REMOTE_KIND.remote_register_new_device_auth_number.getContents()))
 			sb.append(XMLGenerator.MakeXMLHeaderForNotice(REMOTE_KIND.remote_register_new_device_auth_number.getContents()))
-			.append("      <home_info dong=\"").append(dong).append("\" ho=\"").append(ho).append("\" ip=\"").append(targetIP).append("\" type=\"main\"/>\r\n")
+			.append("      <home_info dong=\"").append(dong).append("\" ho=\"")
+			.append(ho).append("\" ip=\"").append(targetIP).append("\" type=\"main\"/>\r\n")
 			.append("      <device_info alias=\"" + alias + "\" twinid=\"" + twinid).append("\" />\r\n")
 			.append("      <device_info alias=\"" + alias + "\" twinid=\"" + twinid).append("\" />\r\n")
 			.append(XMLGenerator.MakeXMLTail());
 			.append(XMLGenerator.MakeXMLTail());
 		
 		

+ 2 - 2
src/main/resources/application.properties

@@ -7,11 +7,11 @@ logging.config=classpath:logback-spring.xml
 
 
 ## 배포용-테스트 단지서버
 ## 배포용-테스트 단지서버
 #spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_danzi?useUnicode=true&charaterEncoding=utf-8
 #spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_danzi?useUnicode=true&charaterEncoding=utf-8
-spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
+#spring.datasource.url=jdbc:mariadb://192.168.100.155:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
 
 
 ## 배포용-카카오데모서버
 ## 배포용-카카오데모서버
 ##spring.datasource.url=jdbc:mariadb://localhost:8005/platform_danzi?useUnicode=true&charaterEncoding=utf-8 
 ##spring.datasource.url=jdbc:mariadb://localhost:8005/platform_danzi?useUnicode=true&charaterEncoding=utf-8 
-#spring.datasource.url=jdbc:mariadb://localhost:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
+spring.datasource.url=jdbc:mariadb://localhost:8005/platform_kakao?useUnicode=true&charaterEncoding=utf-8
 spring.datasource.username=valley
 spring.datasource.username=valley
 spring.datasource.password=valley123
 spring.datasource.password=valley123
 
 

+ 3 - 3
src/main/resources/logback-spring.xml

@@ -9,18 +9,18 @@
 
 
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>log/LogFile_%d{yyyy-MM-dd}.log</fileNamePattern>
             <fileNamePattern>log/LogFile_%d{yyyy-MM-dd}.log</fileNamePattern>
-            <maxHistory>30</maxHistory>
+            <maxHistory>60</maxHistory>
         </rollingPolicy>
         </rollingPolicy>
         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
             <level>DEBUG</level>
             <level>DEBUG</level>
         </filter>
         </filter>
 
 
         <encoder>
         <encoder>
-            <pattern>[DANZI] %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</pattern>
+            <pattern>[KAKAO] %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</pattern>
         </encoder>
         </encoder>
     </appender>
     </appender>
                                                                                                                            
                                                                                                                            
-    <logger name="com.icontrols.kakao" level="DEBUG"></logger>
+    <logger name="com.icontrols.kakao" level="INFO"></logger>
 
 
     <root level="INFO">
     <root level="INFO">
         <appender-ref ref="dailyRollingFileAppender" />
         <appender-ref ref="dailyRollingFileAppender" />