|
@@ -4928,24 +4928,22 @@ public class iMapServer extends Service {
|
|
|
|
|
|
public String iCMDProcTemperControl(Document doc) {
|
|
|
try {
|
|
|
+ String target = "null", tid = "null", msgno = "null";
|
|
|
String retStr = CheckiCMDProc("remote_access_temper");
|
|
|
|
|
|
if (retStr != null) return retStr;
|
|
|
else
|
|
|
retStr = XMLHeader + " <service type=\"reply\" name=\"remote_access_temper\" result=";
|
|
|
|
|
|
- String target = "null", tid = "null", msgno = "null";
|
|
|
NodeList items = doc.getElementsByTagName("target");
|
|
|
Node item = items.item(0);
|
|
|
if (item != null) {
|
|
|
NamedNodeMap attrs = item.getAttributes();
|
|
|
for (int j = 0; j < attrs.getLength(); j++) {
|
|
|
Node attr = attrs.item(j);
|
|
|
-
|
|
|
if (attr.getNodeName().equalsIgnoreCase("name")) target = attr.getNodeValue();
|
|
|
else if (attr.getNodeName().equalsIgnoreCase("id")) tid = attr.getNodeValue();
|
|
|
- else if (attr.getNodeName().equalsIgnoreCase("msg_no"))
|
|
|
- msgno = attr.getNodeValue();
|
|
|
+ else if (attr.getNodeName().equalsIgnoreCase("msg_no")) msgno = attr.getNodeValue();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -4957,7 +4955,7 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
|
|
|
WallpadiCMDParser tempercmd = new WallpadiCMDParser(doc);
|
|
|
- String[] RoomList = {"room1", "room2", "room3", "room4", "room5", "room6", "room7", "room8"};
|
|
|
+ //String[] RoomList = {"room1", "room2", "room3", "room4", "room5", "room6", "room7", "room8"};
|
|
|
tempercmd.actionTXT = trimquotation(tempercmd.actionTXT);
|
|
|
|
|
|
String[] knxRoomNameList = getRoomNameFromDBV2(define.ROOM_NAME_HEATING);
|
|
@@ -5007,8 +5005,8 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
heatingV1API.Refresh(define.DEVICE_ALL_OR_NOTHING, false);
|
|
|
} else {
|
|
|
- for (byte i = 0; i < RoomList.length; i++) {
|
|
|
- if (tempercmd.unitnum.equals(RoomList[i])) {
|
|
|
+ for (byte i = 0; i < knxRoomNameList.length; i++) {
|
|
|
+ if (tempercmd.unitnum.equals(knxRoomNameList[i])) {
|
|
|
roomNum = i;
|
|
|
break;
|
|
|
}
|
|
@@ -5044,28 +5042,21 @@ public class iMapServer extends Service {
|
|
|
heatingV2API.Refresh(define.DEVICE_ALL_OR_NOTHING, false);
|
|
|
}
|
|
|
} else {
|
|
|
- for (byte i = 0; i < RoomList.length; i++) {
|
|
|
- if (tempercmd.unitnum.equals(RoomList[i])) {
|
|
|
- roomNum = i;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (roomNum == (byte) 0xFF) {
|
|
|
- retStr += "\"fail\">\r\n <target name=\"" + tempercmd.target + "\" id=\"" + tempercmd.tid + "\" msg_no=\"" + tempercmd.msgno + "\"/>\r\n </service>\r\n</imap>";
|
|
|
- return retStr;
|
|
|
- }
|
|
|
+ int nDevNum = Integer.parseInt(tempercmd.devnum);
|
|
|
|
|
|
if (heatingV2API != null) {
|
|
|
- int ret = heatingV2API.SetEachRoomStatus(roomNum, Mode, temp);
|
|
|
+ int ret = heatingV2API.SetEachRoomStatus((byte) nDevNum, Mode, temp);
|
|
|
if (ret != APIErrorCode.C_SUCCESS) {
|
|
|
retStr += "\"fail\">\r\n <target name=\"" + tempercmd.target + "\" id=\"" + tempercmd.tid + "\" msg_no=\"" + tempercmd.msgno + "\"/>\r\n </service>\r\n</imap>";
|
|
|
return retStr;
|
|
|
+
|
|
|
}
|
|
|
- heatingV2API.Refresh(roomNum, false);
|
|
|
+ heatingV2API.Refresh((byte) nDevNum, false);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
retStr += "\"fail\">\r\n <target name=\"" + tempercmd.target + "\" id=\"" + tempercmd.tid + "\" msg_no=\"" + tempercmd.msgno + "\"/>\r\n </service>\r\n</imap>";
|
|
|
return retStr;
|
|
|
}
|
|
@@ -5089,7 +5080,7 @@ public class iMapServer extends Service {
|
|
|
if (roomData.bOnOff) drvmode = "on";
|
|
|
else drvmode = "off";
|
|
|
drvmode += "/" + roomData.SetTemp + "/" + roomData.NowTemp;
|
|
|
- resultStr += " <status_info unit_num=\"" + RoomList[i] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
+ resultStr += " <status_info unit_num=\"" + knxRoomNameList[i] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
}
|
|
|
|
|
|
resultStr += " </service>\r\n</imap>\r\n";
|
|
@@ -5098,8 +5089,8 @@ public class iMapServer extends Service {
|
|
|
} else {
|
|
|
String drvmode = "off";
|
|
|
byte roomNum = (byte) 0xFF;
|
|
|
- for (byte i = 0; i < RoomList.length; i++) {
|
|
|
- if (tempercmd.unitnum.equals(RoomList[i])) {
|
|
|
+ for (byte i = 0; i < knxRoomNameList.length; i++) {
|
|
|
+ if (tempercmd.unitnum.equals(knxRoomNameList[i])) {
|
|
|
roomNum = i;
|
|
|
break;
|
|
|
}
|
|
@@ -5114,7 +5105,7 @@ public class iMapServer extends Service {
|
|
|
if (roomData.bOnOff) drvmode = "on";
|
|
|
else drvmode = "off";
|
|
|
drvmode += "/" + roomData.SetTemp + "/" + roomData.NowTemp;
|
|
|
- resultStr += " <status_info unit_num=\"" + RoomList[roomNum] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
+ resultStr += " <status_info unit_num=\"" + knxRoomNameList[roomNum] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
resultStr += " </service>\r\n</imap>\r\n";
|
|
|
retStr += ("\"ok\">\r\n" + resultStr);
|
|
|
return retStr;
|
|
@@ -5129,7 +5120,8 @@ public class iMapServer extends Service {
|
|
|
retStr += "\"fail\">\r\n <target name=\"" + tempercmd.target + "\" id=\"" + tempercmd.tid + "\" msg_no=\"" + tempercmd.msgno + "\"/>\r\n </service>\r\n</imap>";
|
|
|
return retStr;
|
|
|
}
|
|
|
- } else if (HeatingKind == 2) {
|
|
|
+ }
|
|
|
+ else if (HeatingKind == 2) {
|
|
|
try {
|
|
|
if (heatingV2API == null) {
|
|
|
retStr += "\"fail\">\r\n <target name=\"" + tempercmd.target + "\" id=\"" + tempercmd.tid + "\" msg_no=\"" + tempercmd.msgno + "\"/>\r\n </service>\r\n</imap>";
|
|
@@ -5138,7 +5130,7 @@ public class iMapServer extends Service {
|
|
|
byte RoomCount = heatingV2API.data.Device.info.RoomCount;
|
|
|
resultStr += " <action> \"" + tempercmd.actionTXT + "\"</action>\r\n";
|
|
|
//resultStr += " <status_map dev_num=\"1\" unit_cnt = \"" + RoomCount + "\" />\r\n";
|
|
|
- if ((tempercmd.unitnum.equals("all")) || (tempercmd.unitnum.equals("null"))) {
|
|
|
+ if ((tempercmd.devnum.equals("all"))) {
|
|
|
Log.d(TAG, "&&&&&&&&&&&&&&&&&&&&& all :" + RoomCount);
|
|
|
String drvmode = "off";
|
|
|
for (byte i = 0; i < RoomCount; i++) {
|
|
@@ -5150,38 +5142,28 @@ public class iMapServer extends Service {
|
|
|
resultStr += " <status_map dev_num=\"" + (i+1) + "\" unit_cnt = \"1\"/>\r\n";
|
|
|
|
|
|
if (target.equalsIgnoreCase(REMOTETYPE_SVR2MOBILEAUTH) || target.equalsIgnoreCase(REMOTETYPE_SVR2WEB)) {
|
|
|
- resultStr += " <status_info unit_num=\"" + RoomList[i] + "\" unit_status=\"" + drvmode + "\" room_name=\"" + knxRoomNameList[i] + "\"/>\r\n";
|
|
|
+ resultStr += " <status_info unit_num=\"" + knxRoomNameList[i] + "\" unit_status=\"" + drvmode + "\" room_name=\"" + knxRoomNameList[i] + "\"/>\r\n";
|
|
|
} else {
|
|
|
- resultStr += " <status_info unit_num=\"" + RoomList[i] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
+ resultStr += " <status_info unit_num=\"" + knxRoomNameList[i] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
resultStr += " </service>\r\n</imap>\r\n";
|
|
|
retStr += ("\"ok\">\r\n" + resultStr);
|
|
|
return retStr;
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
String drvmode = "off";
|
|
|
- byte roomNum = (byte) 0xFF;
|
|
|
- for (byte i = 0; i < RoomList.length; i++) {
|
|
|
- if (tempercmd.unitnum.equals(RoomList[i])) {
|
|
|
- roomNum = i;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ int nDevNum = Integer.parseInt(tempercmd.unitnum);
|
|
|
|
|
|
- if (roomNum == (byte) 0xFF) {
|
|
|
- retStr += "\"fail\">\r\n <target name=\"" + tempercmd.target + "\" id=\"" + tempercmd.tid + "\" msg_no=\"" + tempercmd.msgno + "\"/>\r\n </service>\r\n</imap>";
|
|
|
- return retStr;
|
|
|
- }
|
|
|
-
|
|
|
- HeatingV2.RoomData roomData = heatingV2API.data.Device.Room[roomNum];
|
|
|
+ HeatingV2.RoomData roomData = heatingV2API.data.Device.Room[nDevNum];
|
|
|
|
|
|
if (HeatingV2.MODE.GetOnOff(roomData.Mode)) drvmode = "on";
|
|
|
else drvmode = "off";
|
|
|
|
|
|
drvmode += "/" + roomData.SetTemp + "/" + roomData.NowTemp;
|
|
|
-
|
|
|
- resultStr += " <status_info unit_num=\"" + RoomList[roomNum] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
+ resultStr += " <status_map dev_num=\"" + (nDevNum) + "\" unit_cnt=\"1\"/>\r\n";
|
|
|
+ resultStr += " <status_info unit_num=\"" + knxRoomNameList[nDevNum] + "\" unit_status=\"" + drvmode + "\"/>\r\n";
|
|
|
resultStr += " </service>\r\n</imap>\r\n";
|
|
|
retStr += ("\"ok\">\r\n" + resultStr);
|
|
|
return retStr;
|
|
@@ -8419,7 +8401,8 @@ public class iMapServer extends Service {
|
|
|
|
|
|
int BadLightCount = KnxApi.data.MasterController.Info.Bad_EnergyMeterCount;
|
|
|
int SwitchCount = KnxApi.data.MasterController.Info.Light_SwitchCount;
|
|
|
- int totalLightCount = LivingLightCount + BadLightCount;
|
|
|
+ int totalLightCount = LivingLightCount + BadLightCount + SwitchCount;
|
|
|
+ int emCount = LivingLightCount + BadLightCount;
|
|
|
//mData.MasterController.Info.Light_SwitchCount
|
|
|
|
|
|
Log.w(TAG, "[iCMDProcChumDamSmartLightControl] LivingLightCount [" + LivingLightCount + "], mSdbAPI.data.BadConcentCount [" + BadLightCount + "], nTotalLightCnt [" + totalLightCount +"]");
|
|
@@ -8446,26 +8429,32 @@ public class iMapServer extends Service {
|
|
|
retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
}
|
|
|
retStr += " </status_map>\r\n";
|
|
|
- } else {
|
|
|
+ } else if(i>0 && i<emCount){
|
|
|
retStr += " <status_map dev_num=\"" + (i + 1) + "\" dev_mode=\"null\" dev_name=\"" + knxRoomNameList[i] + "\" unit_cnt=\"" + KnxApi.data.BadRoom_EnergyMeter[i - 1].Info.LightCount + "\">\r\n";
|
|
|
for (int j = 0; j < KnxApi.data.BadRoom_EnergyMeter[i - 1].Info.LightCount; j++) {
|
|
|
String status_power = "off", status_dim = "null", status_color = "null";
|
|
|
-
|
|
|
status_power = (KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Data.OnOff) ? "on" : "off";
|
|
|
-
|
|
|
- Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.OnOff : " + KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.OnOff);
|
|
|
- Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.Dimming : " + KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.Dimming);
|
|
|
-
|
|
|
status_dim = Integer.toString((int) KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Data.Dimming);
|
|
|
-
|
|
|
if( getLightType( KnxApi.data.BadRoom_EnergyMeter[i-1], j) == 0x0F)
|
|
|
status_dim ="null";
|
|
|
+ retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
+ }
|
|
|
+ retStr += " </status_map>\r\n";
|
|
|
+
|
|
|
+ } else{
|
|
|
+ retStr += " <status_map dev_num=\"" + (i + 1) + "\" dev_mode=\"null\" dev_name=\"" + knxRoomNameList[i] + "\" unit_cnt=\"" + KnxApi.data.Light_Switch[i - emCount].Info.LightCount + "\">\r\n";
|
|
|
+ for (int j = 0; j < KnxApi.data.Light_Switch[i-emCount].Info.LightCount; j++) {
|
|
|
+ String status_power = "off", status_dim = "null", status_color = "null";
|
|
|
+
|
|
|
+ status_power = (KnxApi.data.Light_Switch[i - emCount].Data.LightSwitch[j].Data.OnOff) ? "on" : "off";
|
|
|
+ status_dim ="null";
|
|
|
// zzz
|
|
|
//Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] ***** getLightType" + getLightType( KnxApi.data.BadRoom_EnergyMeter[i - 1], j) );
|
|
|
|
|
|
retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
}
|
|
|
retStr += " </status_map>\r\n";
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -8502,22 +8491,23 @@ public class iMapServer extends Service {
|
|
|
retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
}
|
|
|
retStr += " </status_map>\r\n";
|
|
|
- } else {
|
|
|
+ } else if(nDevNo>1 && nDevNo<emCount+1){
|
|
|
retStr += " <status_map dev_num=\"" + (nDevNo) + "\" dev_mode=\"null\" dev_name=\"" + knxRoomNameList[nDevNo-1] + "\" unit_cnt=\"" + KnxApi.data.BadRoom_EnergyMeter[nDevNo-2].Info.LightCount + "\">\r\n";
|
|
|
for (int j = 0; j < KnxApi.data.BadRoom_EnergyMeter[nDevNo-2].Info.LightCount; j++) {
|
|
|
String status_power = "off", status_dim = "null", status_color = "null";
|
|
|
-
|
|
|
status_power = (KnxApi.data.BadRoom_EnergyMeter[nDevNo-2].Data.BadLight[j].Data.OnOff) ? "on" : "off";
|
|
|
-
|
|
|
- Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.OnOff : " + KnxApi.data.BadRoom_EnergyMeter[nDevNo-2].Data.BadLight[j].Info.Support.OnOff);
|
|
|
- Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.Dimming : " + KnxApi.data.BadRoom_EnergyMeter[nDevNo-2].Data.BadLight[j].Info.Support.Dimming);
|
|
|
-
|
|
|
status_dim = Integer.toString((int) KnxApi.data.BadRoom_EnergyMeter[nDevNo-2].Data.BadLight[j].Data.Dimming);
|
|
|
- // zzz
|
|
|
- //Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] ***** getLightType" + getLightType( KnxApi.data.BadRoom_EnergyMeter[nDevNo-2], j) );
|
|
|
if( getLightType( KnxApi.data.BadRoom_EnergyMeter[nDevNo-2], j) == 0x0F)
|
|
|
status_dim ="null";
|
|
|
-
|
|
|
+ retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
+ }
|
|
|
+ retStr += " </status_map>\r\n";
|
|
|
+ } else{
|
|
|
+ retStr += " <status_map dev_num=\"" + (nDevNo) + "\" dev_mode=\"null\" dev_name=\"" + knxRoomNameList[nDevNo-1] + "\" unit_cnt=\"" + KnxApi.data.Light_Switch[nDevNo-emCount-1].Info.LightCount + "\">\r\n";
|
|
|
+ for (int j = 0; j < KnxApi.data.Light_Switch[nDevNo-emCount-1].Info.LightCount; j++) {
|
|
|
+ String status_power = "off", status_dim = "null", status_color = "null";
|
|
|
+ status_power = (KnxApi.data.Light_Switch[nDevNo-emCount-1].Data.LightSwitch[j].Data.OnOff) ? "on" : "off";
|
|
|
+ status_dim ="null";
|
|
|
retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
}
|
|
|
retStr += " </status_map>\r\n";
|
|
@@ -8574,21 +8564,23 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
retStr += " </status_map>\r\n";
|
|
|
}
|
|
|
- else {
|
|
|
+ else if(i>0 && i<emCount){
|
|
|
retStr += " <status_map dev_num=\""+ (i + 1) + "\" dev_mode=\"null\" dev_name=\""+ knxRoomNameList[i] + "\" unit_cnt=\"" + KnxApi.data.BadRoom_EnergyMeter[i - 1].Info.LightCount + "\">\r\n";
|
|
|
for (int j = 0; j < KnxApi.data.BadRoom_EnergyMeter[i - 1].Info.LightCount; j++) {
|
|
|
String status_power = "off", status_dim = "null", status_color = "null";
|
|
|
-
|
|
|
status_power = (KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Data.OnOff) ? "on" : "off";
|
|
|
-
|
|
|
- Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.OnOff : " + KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.OnOff);
|
|
|
- Log.w(TAG, "yskim [iCMDProcChumDamSmartLightControl] KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.Dimming : " + KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Info.Support.Dimming);
|
|
|
-
|
|
|
status_dim = Integer.toString((int) KnxApi.data.BadRoom_EnergyMeter[i - 1].Data.BadLight[j].Data.Dimming);
|
|
|
-
|
|
|
if( getLightType( KnxApi.data.BadRoom_EnergyMeter[i-1], j) == 0x0F)
|
|
|
status_dim ="null";
|
|
|
-
|
|
|
+ retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
+ }
|
|
|
+ retStr += " </status_map>\r\n";
|
|
|
+ } else {
|
|
|
+ retStr += " <status_map dev_num=\"" + (i + 1) + "\" dev_mode=\"null\" dev_name=\"" + knxRoomNameList[i] + "\" unit_cnt=\"" + KnxApi.data.Light_Switch[i - emCount].Info.LightCount + "\">\r\n";
|
|
|
+ for (int j = 0; j < KnxApi.data.Light_Switch[i-emCount].Info.LightCount; j++) {
|
|
|
+ String status_power = "off", status_dim = "null", status_color = "null";
|
|
|
+ status_power = (KnxApi.data.Light_Switch[i - emCount].Data.LightSwitch[j].Data.OnOff) ? "on" : "off";
|
|
|
+ status_dim ="null";
|
|
|
retStr += " <status_info unit_num=\"" + (j + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + status_color + "\"/>\r\n";
|
|
|
}
|
|
|
retStr += " </status_map>\r\n";
|
|
@@ -8648,11 +8640,10 @@ public class iMapServer extends Service {
|
|
|
retStr += " <status_info unit_num=\"" + (i + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + "null" + "\"/>\r\n";
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
+ else if(nDevNo>1 && nDevNo<emCount+1){
|
|
|
// 각각 EM 조명 일괄제어일 경우
|
|
|
if (!unit_status.equalsIgnoreCase("null")) {
|
|
|
KnxApi.SetLightOnOff((byte) (nDevNo -2), define.DEVICE_ALL_OR_NOTHING, (unit_status.equalsIgnoreCase("on")) ? true : false);
|
|
|
- //mSdbAPI.SetLightOnOff((byte) (nDevNo -2), (byte) 0xFF, (unit_status.equalsIgnoreCase("on")) ? true : false);
|
|
|
}
|
|
|
|
|
|
if (!unit_dimming.equalsIgnoreCase("null")) {
|
|
@@ -8694,12 +8685,37 @@ public class iMapServer extends Service {
|
|
|
//KnxApi.data.BadRoom_EnergyMeter[nDevNo - 2].Info.LightType_1
|
|
|
String status_power = (KnxApi.data.BadRoom_EnergyMeter[nDevNo - 2].Data.BadLight[i].Data.OnOff) ? "on" : "off";
|
|
|
String status_dim = Integer.toString((int) KnxApi.data.BadRoom_EnergyMeter[nDevNo - 2].Data.BadLight[i].Data.Dimming);
|
|
|
-
|
|
|
if( getLightType( KnxApi.data.BadRoom_EnergyMeter[nDevNo - 2], i) == 0x0F)
|
|
|
status_dim ="null";
|
|
|
+ retStr += " <status_info unit_num=\"" + (i + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + "null" + "\"/>\r\n";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 각각 EM 스위치 일괄제어일 경우
|
|
|
+ if (!unit_status.equalsIgnoreCase("null")) {
|
|
|
+ KnxApi.SetLightSwitchOnOff((byte) (nDevNo-emCount-1), define.DEVICE_ALL_OR_NOTHING, (unit_status.equalsIgnoreCase("on")) ? true : false);
|
|
|
+ }
|
|
|
+ if ( KnxApi.Refresh(KnxAPI.DEVICE_INDEX.ALL, (byte) define.DEVICE_ALL_OR_NOTHING) < 0 ) {
|
|
|
+ retStr += " result=\"fail\">\r\n </service>\r\n</imap>";
|
|
|
+ Log.d(TAG, "yskim [iCMDProcChumDamSmartLightControl] Refreshing mSdbAPI is failed!!!");
|
|
|
+ return retStr;
|
|
|
+ }
|
|
|
+
|
|
|
+ retStr += " result=\"ok\">\r\n";
|
|
|
+ retStr += " <target name=\"" + lightcmd.target + "\" id=\"" + lightcmd.tid + "\" msg_no=\"" + lightcmd.msgno + "\"/>\r\n";
|
|
|
+ retStr += " <action>\"" + lightcmd.actionTXT + "\"</action>\r\n";
|
|
|
+ retStr += " <dev_cnt>\"1\"</dev_cnt>\r\n";
|
|
|
|
|
|
+ retStr += " <status_map dev_num=\"" + nDevNo + "\" dev_mode=\""+ "null" + "\" dev_name=\"" + knxRoomNameList[nDevNo-emCount-1] + "\" unit_cnt=\"" + KnxApi.data.Light_Switch[nDevNo-emCount-1].Info.LightCount + "\">\r\n";
|
|
|
+
|
|
|
+ nDevNo = Integer.parseInt(dev_num);
|
|
|
+
|
|
|
+ for( int i = 0 ; i < KnxApi.data.Light_Switch[nDevNo-emCount-1].Info.LightCount ; i++) {
|
|
|
+ //KnxApi.data.BadRoom_EnergyMeter[nDevNo - 2].Info.LightType_1
|
|
|
+ String status_power = (KnxApi.data.Light_Switch[nDevNo-emCount-1].Data.LightSwitch[i].Data.OnOff) ? "on" : "off";
|
|
|
+ String status_dim ="null";
|
|
|
retStr += " <status_info unit_num=\"" + (i + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + "null" + "\"/>\r\n";
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
// retStr += " </status_map>\r\n";
|
|
|
// retStr += " </service>\r\n</imap>\r\n";
|
|
@@ -8747,7 +8763,7 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- else {
|
|
|
+ else if(nDevNo>1 && nDevNo<emCount+1){
|
|
|
if (!unit_status.equalsIgnoreCase("null")) {
|
|
|
KnxApi.SetLightOnOff((byte) (nDevNo -2), (byte)(nUnitNo-1), (unit_status.equalsIgnoreCase("on")) ? true : false);
|
|
|
//mSdbAPI.SetLightOnOff((byte) (nDevNo -2), (byte) 0xFF, (unit_status.equalsIgnoreCase("on")) ? true : false);
|
|
@@ -8783,6 +8799,31 @@ public class iMapServer extends Service {
|
|
|
|
|
|
retStr += " <status_info unit_num=\"" + (i + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + "null" + "\"/>\r\n";
|
|
|
}
|
|
|
+ } else{
|
|
|
+ if (!unit_status.equalsIgnoreCase("null")) {
|
|
|
+ KnxApi.SetLightSwitchOnOff((byte) (nDevNo-emCount-1), (byte)(nUnitNo-1), (unit_status.equalsIgnoreCase("on")) ? true : false);
|
|
|
+ }
|
|
|
+ if ( KnxApi.Refresh(KnxAPI.DEVICE_INDEX.ALL, (byte) define.DEVICE_ALL_OR_NOTHING) < 0 ) {
|
|
|
+ retStr += " result=\"fail\">\r\n </service>\r\n</imap>";
|
|
|
+ Log.d(TAG, "yskim [iCMDProcChumDamSmartLightControl] Refreshing mSdbAPI is failed!!!");
|
|
|
+ return retStr;
|
|
|
+ }
|
|
|
+
|
|
|
+ retStr += " result=\"ok\">\r\n";
|
|
|
+ retStr += " <target name=\"" + lightcmd.target + "\" id=\"" + lightcmd.tid + "\" msg_no=\"" + lightcmd.msgno + "\"/>\r\n";
|
|
|
+ retStr += " <action>\"" + lightcmd.actionTXT + "\"</action>\r\n";
|
|
|
+ retStr += " <dev_cnt>\"1\"</dev_cnt>\r\n";
|
|
|
+
|
|
|
+ retStr += " <status_map dev_num=\"" + nDevNo + "\" dev_mode=\""+ "null" + "\" dev_name=\"" + knxRoomNameList[nDevNo-emCount-1] + "\" unit_cnt=\"" + KnxApi.data.Light_Switch[nDevNo-emCount-1].Info.LightCount + "\">\r\n";
|
|
|
+
|
|
|
+ nDevNo = Integer.parseInt(dev_num);
|
|
|
+
|
|
|
+ for( int i = 0 ; i < KnxApi.data.Light_Switch[nDevNo-emCount-1].Info.LightCount ; i++) {
|
|
|
+ //KnxApi.data.BadRoom_EnergyMeter[nDevNo - 2].Info.LightType_1
|
|
|
+ String status_power = (KnxApi.data.Light_Switch[nDevNo-emCount-1].Data.LightSwitch[i].Data.OnOff) ? "on" : "off";
|
|
|
+ String status_dim ="null";
|
|
|
+ retStr += " <status_info unit_num=\"" + (i + 1) + "\" unit_status=\"" + status_power + "\" unit_dimming=\"" + status_dim + "\" unit_color=\"" + "null" + "\"/>\r\n";
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -9664,7 +9705,6 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
-
|
|
|
String sOnOff = "off";
|
|
|
//CtrList[1] = cool , CtrList[2] = 1 (바람세기) ,CtrList[3] = 설정온도 ,CtrList[4] = 현재온도 ,
|
|
|
byte hOnOff = 0x00;
|