Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
k-sdk
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈伟灿
k-sdk
Commits
750c1fa7
Commit
750c1fa7
authored
Aug 20, 2021
by
尹佳钦
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'yjq' of
http://172.17.3.10:17001/chenweican/k-sdk
parents
4d03d5a7
2abbf7f2
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
685 additions
and
1001 deletions
+685
-1001
application/klansdk/kk_lan_sync.c
application/klansdk/kk_lan_sync.c
+57
-133
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+1
-0
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+65
-309
midware/midware/midware.c
midware/midware/midware.c
+4
-1
opcodeMapCfg/device_3020.json
opcodeMapCfg/device_3020.json
+79
-79
opcodeMapCfg/device_3023.json
opcodeMapCfg/device_3023.json
+41
-41
opcodeMapCfg/device_3027.json
opcodeMapCfg/device_3027.json
+41
-41
opcodeMapCfg/device_3032.json
opcodeMapCfg/device_3032.json
+138
-138
opcodeMapCfg/device_3034.json
opcodeMapCfg/device_3034.json
+214
-214
opcodeMapCfg/device_3051.json
opcodeMapCfg/device_3051.json
+45
-45
No files found.
application/klansdk/kk_lan_sync.c
View file @
750c1fa7
...
...
@@ -13,7 +13,8 @@
/*******获取同步数据json*******/
static
cJSON
*
kk_get_sync_data
(
cJSON
*
payload
)
{
return
cJSON_GetObjectItem
(
payload
,
DATA_STR
);
cJSON
*
data
=
cJSON_GetObjectItem
(
payload
,
DATA_STR
);
return
cJSON_GetObjectItem
(
data
,
DATA_STR
);
}
...
...
@@ -65,7 +66,6 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
for
(
i
=
0
;
i
<
num
;
i
++
,
item
++
){
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
name
=
cJSON_GetObjectItem
(
room
,
NAME_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
...
...
@@ -79,9 +79,6 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
item
->
room_status
=
NULL
;
}
roomsAry
=
_kk_syn_rooms_info
(
num
,
items
);
cJSON_AddItemToObject
(
root
,
ROOMS_STR
,
roomsAry
);
return
root
;
...
...
@@ -175,7 +172,6 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
for
(
i
=
0
;
i
<
num
;
i
++
,
ptr
++
){
cJSON
*
item
;
item
=
cJSON_GetArrayItem
(
actions
,
i
);
...
...
@@ -210,26 +206,20 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
static
int
kk_sync_scene_condition
(
cJSON
*
condition
,
SYN_SCENE_ITEM
**
build
)
{
cJSON
*
itemAry
=
NULL
;
cJSON
*
startTime
,
*
endTime
,
*
crossDay
,
*
repeat_days
;
if
(
condition
==
NULL
||
build
==
NULL
||*
build
==
NULL
){
return
-
1
;
}
if
((
itemAry
=
cJSON_GetObjectItem
(
condition
,
"items"
))
==
NULL
){
return
-
1
;
}
int
i
,
j
,
num
=
cJSON_GetArraySize
(
itemAry
);
int
i
,
j
,
num
=
cJSON_GetArraySize
(
condition
);
int
repeat
;
int
get_flag
=
0
;
SYN_SCENE_ITEM
*
ptr
=*
build
;
printf
(
"kk_sync_scene_condition,num=%d
\n
"
,
num
);
for
(
i
=
0
;
i
<
num
;
i
++
){
cJSON
*
item
;
printf
(
"i=%d
\n
"
,
i
);
item
=
cJSON_GetArrayItem
(
condition
,
i
);
startTime
=
cJSON_GetObjectItem
(
item
,
"startTime"
);
...
...
@@ -275,10 +265,7 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
cJSON
*
scenesAry
=
cJSON_CreateArray
();
cJSON
*
sceneItem
;
SYN_SCENE_ITEM
*
pScene
=
build
;
for
(
i
=
0
;
i
<
num
;
i
++
,
pScene
++
){
printf
(
"i=%d
\n
"
,
i
);
for
(
i
=
0
;
i
<
num
;
i
++
,
build
++
){
cJSON
*
item
=
cJSON_GetArrayItem
(
scenes
,
i
);
actions
=
cJSON_GetObjectItem
(
item
,
ACTIONS_STR
);
enable
=
cJSON_GetObjectItem
(
item
,
ENABLE_STR
);
...
...
@@ -293,20 +280,18 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
if(strcmp(sceneType->valuestring,"")==){
}*/
//printf("--------------------------->[%s][%d]\n",__FUNCTION__,__LINE__);
pScene
->
act_num
=
kk_sync_actions
(
actions
,
&
pScene
->
act
,
&
pScene
->
room_id
);
//printf("--------------------------->[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_scene_condition
(
condition
,
&
pScene
);
//printf("--------------------------->[%s][%d]\n",__FUNCTION__,__LINE__);
pScene
->
scene_id
=
sceneId
->
valuestring
;
pScene
->
name
=
name
->
valuestring
;
pScene
->
pannel_id
=
NULL
;
sceneItem
=
kk_scene_build
(
&
pScene
);
//printf("--------------------------->[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddItemToArray
(
scenesAry
,
sceneItem
);
// printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,cJSON_Print(sceneItem));
}
...
...
@@ -316,26 +301,21 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
}
//同步设备
int
_kk_sync_device_item
(
cJSON
*
deviceCode
,
cJSON
*
epNum
,
cJSON
*
name
,
cJSON
*
roomId
,
cJSON
*
deviceAry
)
int
kk_sync_devices_to_sdk
(
cJSON
*
root
)
{
kk_map_dev_node_t
*
node
=
NULL
;
char
nodeid
[
32
]
=
{
0
};
char
gwmac
[
32
]
=
{
0
};
char
submac
[
32
]
=
{
0
};
char
channel
[
4
]
=
{
0
};
int
idx
=
1
;
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
deviceCode
==
NULL
||
deviceAry
==
NULL
){
return
-
1
;
}
cJSON
*
devices
=
cJSON_CreateArray
();
list_for_each_entry
(
node
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
)
{
if
(
node
!=
NULL
)
{
printf
(
"node->deviceCode=%s,%s
\n
"
,
node
->
deviceCode
,
deviceCode
->
valuestring
);
if
(
strlen
(
node
->
deviceCode
)
==
strlen
(
deviceCode
->
valuestring
)
&&
!
strcmp
(
node
->
deviceCode
,
deviceCode
->
valuestring
)){
cJSON
*
subdevicesItem
=
cJSON_CreateObject
();
if
(
epNum
==
NULL
||
epNum
->
type
!=
cJSON_String
){
...
...
@@ -370,6 +350,7 @@ int _kk_sync_device_item(cJSON *deviceCode,cJSON *epNum,cJSON *name,cJSON *roomI
cJSON_AddStringToObject
(
subdevicesItem
,
MAC_STRING
,
submac
);
cJSON_AddStringToObject
(
subdevicesItem
,
OPERATE_TYPE_STRING
,
node
->
opearteType
);
cJSON_AddItemToArray
(
deviceAry
,
subdevicesItem
);
}
}
...
...
@@ -393,7 +374,6 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
num
=
cJSON_GetArraySize
(
inDevAry
);
for
(
i
=
0
;
i
<
num
;
i
++
){
printf
(
"...i=%d
\n
"
,
i
);
cJSON
*
item
=
cJSON_GetArrayItem
(
inDevAry
,
i
);
deviceCode
=
cJSON_GetObjectItem
(
item
,
"deviceCode"
);
epNum
=
cJSON_GetObjectItem
(
item
,
"epNum"
);
...
...
@@ -412,16 +392,11 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
int
i
,
num
=
cJSON_GetArraySize
(
rooms
);
cJSON
*
roomId
,
*
devices
;
printf
(
"kk_sync_devices_to_sdk,num=%d
\n
"
,
num
);
for
(
i
=
0
;
i
<
num
;
i
++
){
printf
(
"i=%d
\n
"
,
i
);
cJSON
*
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
printf
(
"devices...=%s
\n
"
,
cJSON_Print
(
devices
));
kk_sync_device
(
roomId
,
devices
,
deviceAry
);
}
...
...
@@ -438,6 +413,7 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
cJSON
*
newccu
,
*
oldccu
;
cJSON
*
arg
=
cJSON_CreateObject
();
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
node
==
NULL
||
node
->
syn_type
!=
1
||
node
->
syn_opcode
==
NULL
){
return
arg
;
...
...
@@ -502,6 +478,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
cJSON
*
newccu
=
NULL
,
*
oldccu
=
NULL
;
cJSON
*
dev_status
=
NULL
;
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
node
==
NULL
||
devStatusAry
==
NULL
||
index
==
NULL
){
return
-
1
;
...
...
@@ -594,7 +571,6 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
kk_map_dev_node_t
*
n
=
NULL
;
cJSON
*
devStatusAry
=
cJSON_CreateArray
();
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
_kk_map_dev_mutex_lock
();
list_for_each_entry_safe
(
node
,
n
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
){
...
...
@@ -609,7 +585,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
}
}
_kk_map_dev_mutex_unlock
();
cJSON_AddItemToObject
(
root
,
DEVICE_STATUS_STRING
,
devStatusAry
);
...
...
@@ -681,94 +657,65 @@ typedef struct{
char
*
nodeId
;
char
*
sensor_type
;
}
SYN_GUARD_SENSORS
;
static
int
_kk_guard_sensors_build
(
cJSON
*
guard_sensors
,
int
num
,
SYN_GUARD_SENSORS
*
sensors
)
static
cJSON
*
_kk_guard_sensors_build
(
int
num
,
SYN_GUARD_SENSORS
*
sensors
)
{
int
i
;
SYN_GUARD_SENSORS
*
pSensor
;
cJSON
*
item
;
cJSON
*
guard_sensors
=
cJSON_CreateArray
();
SYN_GUARD_SENSORS
*
pSensor
=
sensors
;
if
(
num
<=
0
||
sensors
==
NULL
){
return
-
1
;
}
pSensor
=
sensors
;
for
(
i
=
0
;
i
<
num
;
i
++
,
pSensor
++
){
cJSON
*
item
=
cJSON_CreateObject
();
item
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
item
,
"nodeid"
,(
pSensor
->
nodeId
)
?
pSensor
->
nodeId
:
"-1"
);
cJSON_AddStringToObject
(
item
,
"sensor_type"
,(
pSensor
->
sensor_type
)
?
pSensor
->
sensor_type
:
"0"
);
cJSON_AddItemToArray
(
guard_sensors
,
item
);
}
return
0
;
return
guard_sensors
;
}
static
cJSON
*
_kk_guard_custom_zone_build
(
int
num
,
char
*
roomId
)
{
int
i
;
cJSON
*
custom_guard_zone
=
cJSON_CreateArray
();
char
*
pRoomId
=
roomId
;
for
(
i
=
0
;
i
<
num
;
i
++
,
pRoomId
++
){
cJSON_AddItemToArray
(
custom_guard_zone
,
cJSON_CreateString
(
pRoomId
));
}
return
custom_guard_zone
;
}
int
kk_sync_guard_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
cJSON
*
kk_sync_guard_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
{
char
*
armingStr
=
NULL
;
char
modeStr
[
8
]
=
{
0
}
;
cJSON
*
guard
=
cJSON_CreateObject
();
cJSON
*
custom_guard_zone
=
cJSON_CreateArray
();
cJSON
*
guard_sensors
=
cJSON_CreateArray
();
cJSON
*
properties
=
cJSON_GetObjectItem
(
data
,
"properties"
);
cJSON
*
ArmingState
=
NULL
,
*
RoomIdsAry
=
NULL
;
cJSON
*
custom_guard_zone
;
cJSON
*
guard_sensors
;
//todo 撤防布防
int
guardMode
=
0
;
snprintf
(
modeStr
,
sizeof
(
modeStr
),
"%d"
,
guardMode
);
cJSON_AddStringToObject
(
guard
,
"arming_status"
,
"1"
);
cJSON_AddItemToObject
(
guard
,
"custom_guard_zone"
,
custom_guard_zone
);
cJSON_AddItemToObject
(
guard
,
"guard_sensors"
,
guard_sensors
);
cJSON_AddStringToObject
(
guard
,
"arming_status"
,
modeStr
);
SYN_GUARD_SENSORS
sensors
;
sensors
.
nodeId
=
malloc
(
10
);
memset
(
sensors
.
nodeId
,
0
,
10
);
memcpy
(
sensors
.
nodeId
,
"1234"
,
strlen
(
"1234"
));
sensors
.
sensor_type
=
malloc
(
10
);
memset
(
sensors
.
sensor_type
,
0
,
10
);
memcpy
(
sensors
.
sensor_type
,
"5678"
,
strlen
(
"5678"
));
cJSON_AddItemToObject
(
root
,
"guard"
,
guard
);
guard_sensors
=
_kk_guard_sensors_build
(
1
,
&
sensors
);
char
roomId
[
12
]
=
"abcd"
;
custom_guard_zone
=
_kk_guard_custom_zone_build
(
1
,
roomId
);
cJSON_AddItemToObject
(
guard
,
"custom_guard_zone"
,
custom_guard_zone
);
cJSON_AddItemToObject
(
guard
,
"guard_sensors"
,
guard_sensors
);
if
(
properties
==
NULL
||
properties
->
type
!=
cJSON_Object
){
return
-
1
;
}
ArmingState
=
cJSON_GetObjectItem
(
properties
,
"ArmingState"
);
if
(
ArmingState
==
NULL
||
ArmingState
->
type
!=
cJSON_Number
){
return
-
1
;
}
cJSON_AddItemToObject
(
root
,
"guard"
,
guard
);
/*
"0": "离家布防",
"1": "撤防",
"2": "在家布防",
"3": "区域布防"
*/
//1:离家布防,2:撤防,3:在家布防,4:自定义防区布防。
if
(
ArmingState
->
valueint
==
0
){
armingStr
=
"1"
;
}
else
if
(
ArmingState
->
valueint
==
2
){
armingStr
=
"3"
;
}
else
if
(
ArmingState
->
valueint
==
3
){
armingStr
=
"4"
;
}
else
{
armingStr
=
"2"
;
}
cJSON_ReplaceItemInObject
(
guard
,
"arming_status"
,
cJSON_CreateString
(
armingStr
));
if
(
ArmingState
->
valueint
==
3
){
int
i
,
num
;
cJSON
*
item
=
NULL
;
char
roomIdStr
[
16
]
=
{
0
};
RoomIdsAry
=
cJSON_GetObjectItem
(
properties
,
"RoomIds"
);
if
(
RoomIdsAry
==
NULL
||
RoomIdsAry
->
type
!=
cJSON_Array
){
return
-
1
;
}
num
=
cJSON_GetArraySize
(
RoomIdsAry
);
for
(
i
=
0
;
i
<
num
;
i
++
){
item
=
cJSON_GetArrayItem
(
RoomIdsAry
,
i
);
if
(
item
->
type
!=
cJSON_Number
){
continue
;
}
memset
(
roomIdStr
,
0
,
sizeof
(
roomIdStr
));
snprintf
(
roomIdStr
,
sizeof
(
roomIdStr
),
"%d"
,
item
->
valueint
);
cJSON_AddItemToArray
(
custom_guard_zone
,
cJSON_CreateString
(
roomIdStr
));
}
}
//新中控同步接口未有安防类传感器列表,故只保留实现接口,未具体实现转换
_kk_guard_sensors_build
(
guard_sensors
,
-
1
,
NULL
);
return
0
;
}
...
...
@@ -1067,7 +1014,6 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON
*
code_lib_controllers
;
cJSON
*
controllers
;
cJSON
*
expand_rules
;
cJSON
*
data
=
kk_get_sync_data
(
payload
);
char
*
out
=
NULL
;
printf
(
"!!!!!!!!!!!!!!!!!!!!------>%x
\n
"
,
&
out
);
...
...
@@ -1085,23 +1031,19 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON_AddItemToObject
(
root
,
"ccu_link_status"
,
ccu_link_status
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cnwise_music_controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"cnwise_music_controllers"
,
cnwise_music_controllers
);
code_lib_controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"code_lib_controllers"
,
code_lib_controllers
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"controllers"
,
controllers
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_devices_status_to_sdk
(
root
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
...
...
@@ -1109,46 +1051,28 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
kk_sync_devices_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_rooms_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_scence_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_gw_version_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_ccu_version_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_guard_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_central_ac_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_central_ac_indoorunits_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_groups_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_create_floors_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
#if 1
...
...
midware/midware/dm/kk_dm_msg.c
View file @
750c1fa7
...
...
@@ -19,6 +19,7 @@ void kk_sendData2app(void *info, void *payload,int isAsync){
cJSON_AddItemToObject
(
root
,
"info"
,
infoObj
);
cJSON_AddItemToObject
(
root
,
"payload"
,
payloadObj
);
buf
=
cJSON_Print
(
root
);
cJSON_Minify
(
buf
);
if
(
isAsync
){
dm_queue_msg_insert4
(
buf
);
...
...
midware/midware/dm/kk_sync_data.c
View file @
750c1fa7
...
...
@@ -25,11 +25,9 @@
#include "kk_hal.h"
extern
sqlite3
*
g_kk_pDb
;
static
int
kk_check_multi_ep_num
(
char
*
deviceCode
);
static
int
kk_get_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
static
int
kk_get_panel_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
typedef
struct
{
void
*
mutex
;
sqlite3
*
pDb
;
...
...
@@ -79,12 +77,12 @@ int kk_sync_init(void)
static
cJSON
*
kk_get_room_devices
(
const
char
*
roomId
)
{
const
char
*
selectCmd
=
"select * from AreaDevInfo WHERE roomId = '%s';"
;
const
char
*
selectCmd
=
"select * from AreaDevInfo WHERE roomId = '%s'
and epNum = 1
;"
;
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
deviceCode
=
NULL
;
char
*
epNum
=
NULL
;
cJSON
*
devs
=
cJSON_CreateArray
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
...
...
@@ -92,21 +90,8 @@ static cJSON * kk_get_room_devices(const char *roomId)
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
dev
=
cJSON_CreateObject
();
char
devName
[
64
]
=
{
0
};
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
epNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
if
(
kk_check_multi_ep_num
(
deviceCode
)){
cJSON_AddStringToObject
(
dev
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
}
cJSON_AddStringToObject
(
dev
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
//cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum);
kk_get_device_name
(
deviceCode
,
epNum
,
devName
,
sizeof
(
devName
));
cJSON_AddStringToObject
(
dev
,
"name"
,
devName
);
cJSON_AddItemToArray
(
devs
,
dev
);
}
sqlite3_free
(
sqlCmd
);
...
...
@@ -115,7 +100,6 @@ static cJSON * kk_get_room_devices(const char *roomId)
return
devs
;
}
static
cJSON
*
kk_get_room_sences
(
const
char
*
roomId
)
{
const
char
*
selectCmd
=
"select * from SceneInfo where roomId = '%s';"
;
...
...
@@ -123,7 +107,7 @@ static cJSON * kk_get_room_sences(const char *roomId)
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
sceneId
=
NULL
;
char
*
sceneType
=
NULL
;
cJSON
*
scenes
=
cJSON_CreateArray
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
...
...
@@ -132,14 +116,13 @@ static cJSON * kk_get_room_sences(const char *roomId)
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
scene
=
cJSON_CreateObject
();
sceneId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENEINFO_SCENEID
);
sceneType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENEINFO_SCENETYPE
);
cJSON_AddStringToObject
(
scene
,
KK_SYNC_SCENEID_STR
,
sceneId
);
cJSON_AddStringToObject
(
scene
,
KK_SYNC_SCENE_SCENETYPE_STR
,
sceneType
);
cJSON_AddItemToArray
(
scenes
,
scene
);
}
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
scenes
;
}
...
...
@@ -162,7 +145,7 @@ static int kk_get_rooms_info(cJSON *data)
cJSON
*
scenesArray
=
NULL
;
_kk_sync_lock
();
sqlCmd
=
sqlite3_mprintf
(
"select * from AreaInfo"
);
sqlCmd
=
sqlite3_mprintf
(
"select * from AreaInfo"
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
roomItem
=
cJSON_CreateObject
();
...
...
@@ -187,123 +170,7 @@ static int kk_get_rooms_info(cJSON *data)
return
SUCCESS_RETURN
;
}
static
int
kk_check_multi_ep_num
(
char
*
deviceCode
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
deviceCode
==
NULL
){
return
0
;
}
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;"
,
deviceCode
,
KK_DM_DEVICE_SUBDEV
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
char
*
propertiesbuf
[
64
]
=
{
0
};
int
num
=
0
;
split
(
propertyStr
,
"_"
,
propertiesbuf
,
&
num
);
if
(
num
>=
2
){
return
1
;
}
}
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
0
;
}
static
cJSON
*
kk_get_gw_properties_info
(
cJSON
*
data
)
{
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
roomIdsAry
=
NULL
;
cJSON
*
property
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE devType = '%d' "
,
KK_DM_DEVICE_GATEWAY
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
property
,
propertyStr
,
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atof
(
valueStr
));
}
}
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
property
;
}
static
cJSON
*
kk_get_ccu_properties_info
(
cJSON
*
data
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
roomIdsAry
=
NULL
;
cJSON
*
property
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE devType = '%d' "
,
KK_DM_DEVICE_CCU
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
if
(
!
strcmp
(
propertyStr
,
"ArmingState"
)){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atoi
(
valueStr
));
}
else
{
cJSON_AddStringToObject
(
property
,
propertyStr
,
valueStr
);
}
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atof
(
valueStr
));
}
}
if
((
roomIdsAry
=
kk_get_roomIds_ary
())
!=
NULL
){
cJSON_AddItemToObject
(
property
,
"RoomIds"
,
roomIdsAry
);
}
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
property
;
}
static
cJSON
*
kk_get_properties_info
(
char
*
deviceCode
,
int
devType
)
static
int
kk_get_properties_info
(
char
*
deviceCode
,
cJSON
*
obj
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
...
...
@@ -311,98 +178,32 @@ static cJSON *kk_get_properties_info(char *deviceCode,int devType)
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
char
*
ptr
=
NULL
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
deviceCode
==
NULL
){
return
NULL
;
}
cJSON
*
obj
=
cJSON_CreateObject
();
cJSON
*
eps
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;"
,
deviceCode
,
devType
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
propertyItem
=
cJSON_CreateObject
();
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
char
*
propertiesbuf
[
64
]
=
{
0
};
int
num
=
0
;
split
(
propertyStr
,
"_"
,
propertiesbuf
,
&
num
);
if
(
num
==
2
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
propertyItem
,
"epNum"
,
propertiesbuf
[
1
]);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
propertyItem
,
propertiesbuf
[
0
],
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
propertyItem
,
propertiesbuf
[
0
],
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
propertyItem
,
propertiesbuf
[
0
],
atof
(
valueStr
));
}
}
else
{
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
propertyItem
,
"epNum"
,
"1"
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
propertyItem
,
propertyStr
,
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atof
(
valueStr
));
}
}
cJSON_AddItemToArray
(
eps
,
propertyItem
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
}
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddItemToObject
(
obj
,
"eps"
,
eps
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
obj
;
}
static
int
kk_get_properties_info_obj
(
char
*
deviceCode
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
obj
=
cJSON_CreateObject
();
if
(
deviceCode
==
NULL
){
return
NULL
;
if
(
deviceCode
==
NULL
||
obj
==
NULL
){
return
FAIL_RETURN
;
}
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s'
and devType=%d;"
,
deviceCode
,
KK_DM_DEVICE_SUBDEV
);
cJSON
*
propertyItem
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s'
"
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
obj
,
propertyStr
,
valueStr
);
cJSON_AddStringToObject
(
propertyItem
,
propertyStr
,
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
obj
,
propertyStr
,
atoi
(
valueStr
));
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
obj
,
propertyStr
,
atof
(
valueStr
));
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atof
(
valueStr
));
}
}
}
cJSON_AddItemToObject
(
obj
,
KK_SYNC_PROPERTY_STR
,
propertyItem
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
obj
;
return
SUCCESS_RETURN
;
}
...
...
@@ -478,13 +279,11 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
}
cJSON
*
subDevices
=
cJSON_CreateArray
();
#if 1
sqlCmd
=
sqlite3_mprintf
(
"select * from SubDeviceInfo WHERE fatherDeviceCode = '%s' "
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
subdevicesItem
=
cJSON_CreateObject
();
cJSON
*
properties
=
NULL
;
char
devName
[
64
]
=
{
0
};
subDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
subProductCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
subVersion
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_VERSION
);
...
...
@@ -492,30 +291,22 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_DEVICECODE_STR
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_VERSION_STR
,
subVersion
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_MAC_STR
,
subDeviceCode
);
cJSON_AddNumberToObject
(
subdevicesItem
,
KK_SYNC_ONLINE_STR
,
(
strcmp
(
subIsline
,
"0"
)
==
0
)
?
1
:
0
);
kk_get_device_name
(
subDeviceCode
,
"1"
,
devName
,
sizeof
(
devName
));
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_NANE_STR
,
devName
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_ONLINE_STR
,
subIsline
);
kk_get_panelConfig_info
(
subdevicesItem
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
subProductCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddNumberToObject
(
subdevicesItem
,
KK_SYNC_STATUS_STR
,
1
);
if
(
kk_check_multi_ep_num
(
subDeviceCode
)){
properties
=
kk_get_properties_info
(
subDeviceCode
,
KK_DM_DEVICE_SUBDEV
);
}
else
{
properties
=
kk_get_properties_info_obj
(
subDeviceCode
);
}
cJSON_AddItemToObject
(
subdevicesItem
,
"properties"
,
properties
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_STATUS_STR
,
"启动"
);
kk_get_properties_info
(
subDeviceCode
,
subdevicesItem
);
cJSON_AddItemToArray
(
subDevices
,
subdevicesItem
);
}
#endif
cJSON_AddItemToObject
(
gwdevicesItem
,
KK_SYNC_DEVICES_STR
,
subDevices
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
}
static
int
kk_get_gw_devices_info
(
cJSON
*
gwdevices
)
...
...
@@ -550,17 +341,12 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_VERSION_STR
,
gw_version
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_MAC_STR
,
gw_deviceCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_NANE_STR
,
"GW"
);
cJSON_Add
NumberToObject
(
gwdevicesItem
,
KK_SYNC_ONLINE_STR
,
(
strcmp
(
gw_isline
,
"0"
)
==
0
)
?
1
:
0
);
cJSON_Add
StringToObject
(
gwdevicesItem
,
KK_SYNC_ONLINE_STR
,
gw_isline
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
gw_productCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddNumberToObject
(
gwdevicesItem
,
KK_SYNC_STATUS_STR
,
1
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_gw_properties_info
(
gwdevicesItem
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_STATUS_STR
,
"启动"
);
kk_get_properties_info
(
gw_deviceCode
,
gwdevicesItem
);
kk_get_sub_devices_info
(
gwdevicesItem
,
gw_deviceCode
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddItemToArray
(
gwdevices
,
gwdevicesItem
);
}
sqlite3_free
(
sqlCmd
);
...
...
@@ -711,19 +497,10 @@ static int kk_get_scenes_actions_info(cJSON *actionArray,int id)
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_DELAY_STR
,
delay
);
char
*
propertiesbuf
[
64
]
=
{
0
};
int
num
=
0
;
split
(
propertyName
,
"_"
,
propertiesbuf
,
&
num
);
if
(
num
==
2
){
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
propertiesbuf
[
0
]);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_EPNUM_STR
,
atoi
(
propertiesbuf
[
1
]));
}
else
{
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
propertyName
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
propertyName
);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
}
//cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_EPNUM_STR, epNum);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_TYPE_STR
,
type
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYVALUE_STR
,
propertyValue
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_ROOMID_STR
,
room_name
);
...
...
@@ -783,7 +560,7 @@ static int kk_creat_starttime_build(time_t current)
}
static
int
kk_get_scenes_trigger_info
(
cJSON
*
trigger
Obj
,
char
*
sceneId
)
static
int
kk_get_scenes_trigger_info
(
cJSON
*
trigger
Array
,
char
*
sceneId
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
...
...
@@ -792,7 +569,6 @@ static int kk_get_scenes_trigger_info(cJSON *triggerObj,char *sceneId)
char
*
propertyName
=
NULL
;
char
*
compareType
=
NULL
;
char
*
compareValue
=
NULL
;
cJSON
*
triggerAry
;
char
*
type
=
NULL
;
int
epNum
=
0
;
...
...
@@ -800,11 +576,10 @@ static int kk_get_scenes_trigger_info(cJSON *triggerObj,char *sceneId)
int
time
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
trigger
Obj
==
NULL
||
sceneId
==
NULL
){
if
(
trigger
Array
==
NULL
||
sceneId
==
NULL
){
return
FAIL_RETURN
;
}
triggerAry
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTimerInfo where sceneId = %s"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
...
...
@@ -844,17 +619,14 @@ static int kk_get_scenes_trigger_info(cJSON *triggerObj,char *sceneId)
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddItemToArray
(
triggerAry
,
triggerItem
);
}
cJSON_AddItemToArray
(
triggerAr
ra
y
,
triggerItem
);
}
cJSON_AddItemToObject
(
triggerObj
,
"items"
,
triggerAry
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
}
static
cJSON
*
kk_build_repeatday_array
(
int
repeatday
)
{
int
i
=
0
;
...
...
@@ -866,8 +638,7 @@ static cJSON *kk_build_repeatday_array(int repeatday)
}
return
repeatAry
;
}
static
int
kk_get_scenes_condition_info
(
cJSON
*
conditionObj
,
char
*
sceneId
)
static
int
kk_get_scenes_condition_info
(
cJSON
*
conditionArray
,
char
*
sceneId
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
...
...
@@ -878,15 +649,10 @@ static int kk_get_scenes_condition_info(cJSON *conditionObj,char *sceneId)
int
crossDay
=
0
;
int
repeat
=
0
;
cJSON
*
conditionAry
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
conditionObj
==
NULL
||
sceneId
==
NULL
){
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
conditionArray
==
NULL
||
sceneId
==
NULL
){
return
FAIL_RETURN
;
}
conditionAry
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneConditionInfo where sceneId = %s"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
...
...
@@ -908,9 +674,8 @@ static int kk_get_scenes_condition_info(cJSON *conditionObj,char *sceneId)
cJSON_AddItemToObject
(
conditionItem
,
KK_SYNC_SCENE_REPEATDAY_STR
,
repeatAry
);
cJSON_AddItemToArray
(
conditionAry
,
conditionItem
);
}
cJSON_AddItemToArray
(
conditionArray
,
conditionItem
);
}
char
*
deviceCode
=
NULL
;
char
*
propertyName
=
NULL
;
char
*
compareType
=
NULL
;
...
...
@@ -919,34 +684,28 @@ static int kk_get_scenes_condition_info(cJSON *conditionObj,char *sceneId)
int
epNum
=
0
;
int
isAnd
;
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTriggerInfo where sceneId = %s"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTimerInfo where sceneId = %s"
,
sceneId
);
isAnd
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_ISAND
);
if
(
isAnd
==
1
){
cJSON
*
trigger
Item
=
cJSON_CreateObject
();
cJSON
*
condition
Item
=
cJSON_CreateObject
();
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_DEVICECODE
);
epNum
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_EPNUM
);
week
=
sqlite3_column_int
(
stmt
,
DB_SCENETIMER_WEEK
);
propertyName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_PROPERTYNAME
);
compareType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPARETYPE
);
compareValue
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPAREVALUE
);
type
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_TYP
E
);
time
=
sqlite3_column_int
(
stmt
,
DB_SCENETIMER_TIM
E
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_TYPE_STR
,
(
char
*
)
type
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_DEVICECODE_STR
,
(
char
*
)
deviceCode
);
cJSON_AddNumberToObject
(
conditionItem
,
"week"
,
week
);
cJSON_AddNumberToObject
(
triggerItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddItemToArray
(
conditionAry
,
triggerItem
);
cJSON_AddNumberToObject
(
conditionItem
,
"time"
,
time
);
}
}
cJSON_AddItemToObject
(
conditionObj
,
"items"
,
conditionAry
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
...
...
@@ -971,9 +730,9 @@ static int kk_get_scenes_info(cJSON *data)
cJSON
*
sceneArrayItem
=
cJSON_CreateObject
();
enable
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_ENABLE
);
if
(
enable
==
1
){
cJSON_Add
NumberToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
1
);
cJSON_Add
StringToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
"启动"
);
}
else
{
cJSON_Add
NumberToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
0
);
cJSON_Add
StringToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
"禁用"
);
}
type
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_SCENETYPE
);
...
...
@@ -985,13 +744,13 @@ static int kk_get_scenes_info(cJSON *data)
cJSON
*
actionArray
=
cJSON_CreateArray
();
kk_get_scenes_actions_info
(
actionArray
,
atoi
(
sceneId
));
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ACTIONS_STR
,
actionArray
);
cJSON
*
trigger
Obj
=
cJSON_CreateObject
();
kk_get_scenes_trigger_info
(
trigger
Obj
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_TRIGGER_STR
,
trigger
Obj
);
cJSON
*
trigger
Array
=
cJSON_CreateArray
();
kk_get_scenes_trigger_info
(
trigger
Array
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_TRIGGER_STR
,
trigger
Array
);
if
(
kk_is_trigger_timing
(
sceneId
)
!=
1
){
cJSON
*
conditionObj
=
cJSON_CreateObject
();
kk_get_scenes_condition_info
(
conditionObj
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_CONDITION_STR
,
conditionObj
);
cJSON
*
conditionArray
=
cJSON_CreateArray
();
kk_get_scenes_condition_info
(
conditionArray
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_CONDITION_STR
,
conditionArray
);
}
cJSON_AddItemToArray
(
sceneArray
,
sceneArrayItem
);
...
...
@@ -1001,8 +760,6 @@ static int kk_get_scenes_info(cJSON *data)
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
}
/*
static
int
kk_get_ccu_properties
(
cJSON
*
property
)
{
char
*
sqlCmd
=
NULL
;
...
...
@@ -1036,7 +793,6 @@ static int kk_get_ccu_properties(cJSON *property)
_kk_sync_unlock
();
return
SUCCESS_RETURN
;
}
*/
/************************************************************
*功能描述:检查设备是否有重复
*输入参数:deviceCode:设备deviceCode
...
...
@@ -1051,36 +807,36 @@ char *kk_sync_get_info()
char
ccu_productCode
[
PRODUCT_CODE_MAXLEN
]
=
{
0
};
char
version
[
32
]
=
{
0
};
char
cloudstatus_str
[
16
]
=
{
0
};
cJSON
*
root
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
root
,
KK_SYNC_CODE_STR
,
"0"
);
cJSON
*
data
=
cJSON_CreateObject
();
cJSON_AddItemToObject
(
root
,
KK_SYNC_DATA_STR
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_rooms_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_devices_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_scenes_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
//
HAL_GetDevice_Code(ccu_deviceCode);
HAL_Get_ccuid
(
ccu_deviceCode
);
HAL_GetDevice_Code
(
ccu_deviceCode
);
HAL_GetProduct_Code
(
ccu_productCode
);
HAL_GetVersion
(
version
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_DEVICECODE_STR
,
ccu_deviceCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_NANE_STR
,
"newccu"
);
sprintf
(
cloudstatus_str
,
"%d"
,
kk_get_cloudstatus
());
cJSON_AddStringToObject
(
data
,
KK_SYNC_ONLINE_STR
,
cloudstatus_str
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_PRODUCTCODE_STR
,
ccu_productCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_VERSION_STR
,
version
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_ccu_properties_info
(
data
);
cJSON
*
property
=
cJSON_CreateObject
();
kk_get_ccu_properties
(
property
);
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
out
=
cJSON_Print
(
data
);
out
=
cJSON_Print
(
root
);
printf
(
"kk_sync_get_info:%s
\n
"
,
out
);
cJSON_Delete
(
data
);
cJSON_Delete
(
root
);
//free(out);
return
out
;
}
...
...
midware/midware/midware.c
View file @
750c1fa7
...
...
@@ -653,7 +653,10 @@ void kk_platMsg_handle(void* data, char* chalMark){
if
(
jsonPay
==
NULL
)
goto
error
;
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_PRODUCT_CODE_STR
);
devCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
mac
=
cJSON_GetObjectItem
(
jsonPay
,
"mac"
);
//mac = cJSON_GetObjectItem(jsonPay, "mac");
mac
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
if
(
proCode
==
NULL
||
devCode
==
NULL
||
mac
==
NULL
){
ERROR_PRINT
(
"productCode, deviceCode mac params are error
\n
"
);
goto
error
;
...
...
opcodeMapCfg/device_3020.json
View file @
750c1fa7
{
"productCode"
:
"3020"
,
"operateType"
:
"2001"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"STATUS"
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},
{
"identifier"
:
"Power"
,
"opcodemap"
:
"GET_DEV_POWER"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},
{
"identifier"
:
"Electric"
,
"opcodemap"
:
"GET_ELECTRICAL"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},
{
"identifier"
:
""
,
"opcodemap"
:
"STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
1
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
],
"syn"
:
"switch"
,
"synType"
:
"map"
},
{
"opcode"
:
"GET_DEV_POWER"
,
"identifiermap"
:
"Power"
,
"dataType"
:
"string_double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
""
,
"synType"
:
"dummy"
},
{
"opcode"
:
"GET_ELECTRICAL"
,
"identifiermap"
:
"Electric"
,
"dataType"
:
"string_double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
""
,
"synType"
:
"dummy"
},
{
"opcode"
:
"STATUS"
,
"identifiermap"
:
""
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"light_switch"
,
"synType"
:
"bool"
}
]
}
{
"productCode"
:
"3020"
,
"operateType"
:
"2001"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"STATUS"
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},
{
"identifier"
:
"Power"
,
"opcodemap"
:
"GET_DEV_POWER"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},
{
"identifier"
:
"Electric"
,
"opcodemap"
:
"GET_ELECTRICAL"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},
{
"identifier"
:
""
,
"opcodemap"
:
"STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
1
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
],
"syn"
:
"switch"
,
"synType"
:
"map"
},
{
"opcode"
:
"GET_DEV_POWER"
,
"identifiermap"
:
"Power"
,
"dataType"
:
"string_double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
""
,
"synType"
:
"dummy"
},
{
"opcode"
:
"GET_ELECTRICAL"
,
"identifiermap"
:
"Electric"
,
"dataType"
:
"string_double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
""
,
"synType"
:
"dummy"
},
{
"opcode"
:
"STATUS"
,
"identifiermap"
:
""
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"light_switch"
,
"synType"
:
"bool"
}
]
}
\ No newline at end of file
opcodeMapCfg/device_3023.json
View file @
750c1fa7
{
"productCode"
:
"3023"
,
"operateType"
:
"3"
,
"channel"
:
2
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"2"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
]
},
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"2"
,
"valueRange"
:[
"OFF"
,
"ON"
]
}
]
}
{
"productCode"
:
"3023"
,
"operateType"
:
"3"
,
"channel"
:
2
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"2"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
]
},
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"2"
,
"valueRange"
:[
"OFF"
,
"ON"
]
}
]
}
\ No newline at end of file
opcodeMapCfg/device_3027.json
View file @
750c1fa7
{
"productCode"
:
"3027"
,
"operateType"
:
"1003"
,
"channel"
:
2
,
"newccu"
:[
{
"identifier"
:
"OperationMode"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
,
2
],
"value"
:
2
},
{
"identifier"
:
"OperationMode"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"2"
,
"valueRange"
:[
0
,
1
,
2
],
"value"
:
2
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"OperationMode"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"CLOSE"
,
"OPEN"
,
"STOP"
]
},
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"OperationMode"
,
"dataType"
:
"map"
,
"channel"
:
"2"
,
"valueRange"
:[
"CLOSE"
,
"OPEN"
,
"STOP"
]
}
]
}
{
"productCode"
:
"3027"
,
"operateType"
:
"1003"
,
"channel"
:
2
,
"newccu"
:[
{
"identifier"
:
"OperationMode"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
,
2
],
"value"
:
2
},
{
"identifier"
:
"OperationMode"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"2"
,
"valueRange"
:[
0
,
1
,
2
],
"value"
:
2
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"OperationMode"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"CLOSE"
,
"OPEN"
,
"STOP"
]
},
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"OperationMode"
,
"dataType"
:
"map"
,
"channel"
:
"2"
,
"valueRange"
:[
"CLOSE"
,
"OPEN"
,
"STOP"
]
}
]
}
\ No newline at end of file
opcodeMapCfg/device_3032.json
View file @
750c1fa7
{
"productCode"
:
"3032"
,
"operateType"
:
"14002"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"FRESH_AIR_SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"WorkMode"
,
"opcodemap"
:
"FRESH_AIR_RUN_MODEL"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
1
},{
"identifier"
:
"WindSpeed"
,
"opcodemap"
:
"FRESH_AIR_SPEED_SET"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
,
2
,
3
],
"value"
:
1
},{
"identifier"
:
"ChildLockState"
,
"opcodemap"
:
"FRESH_AIR_SET_LOCK_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"TimingOffTime"
,
"opcodemap"
:
"FRESH_AIR_SET_TIME_OFF"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"StrainerUsageTime"
,
"opcodemap"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"StrainerAlarmTime"
,
"opcodemap"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"CurrentTemperature"
,
"opcodemap"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
}
],
"oldccu"
:[
{
"opcode"
:
"FRESH_AIR_SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
],
"syn"
:
"on"
,
"synType"
:
"bool"
},{
"opcode"
:
"FRESH_AIR_RUN_MODEL"
,
"identifiermap"
:
"WorkMode"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"AUTO"
,
"MANUAL"
],
"syn"
:
"runModel"
,
"synType"
:
"map"
},{
"opcode"
:
"FRESH_AIR_SPEED_SET"
,
"identifiermap"
:
"WindSpeed"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"STOP"
,
"LOW"
,
"MID"
,
"HIGH"
],
"syn"
:
"speed"
,
"synType"
:
"int"
},{
"opcode"
:
"FRESH_AIR_SET_LOCK_STATUS"
,
"identifiermap"
:
"ChildLockState"
,
"dataType"
:
"bool"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"ChildLockState"
,
"synType"
:
"double"
},{
"opcode"
:
"FRESH_AIR_SET_TIME_OFF"
,
"identifiermap"
:
"TimingOffTime"
,
"dataType"
:
"string_time"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"time_off"
,
"synType"
:
"string_time"
},{
"opcode"
:
"CHOPIN_FRESH_AIR_STATUS "
,
"identifiermap"
:
"StrainerUsageTime"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"filterScreenWorkTime"
,
"synType"
:
"int"
},{
"opcode"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"identifiermap"
:
"StrainerAlarmTime"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"filterScreenAlarmTime"
,
"synType"
:
"int"
},{
"opcode"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"identifiermap"
:
"CurrentTemperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"cur_temperature"
,
"synType"
:
"double"
}
]
}
{
"productCode"
:
"3032"
,
"operateType"
:
"14002"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"FRESH_AIR_SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"WorkMode"
,
"opcodemap"
:
"FRESH_AIR_RUN_MODEL"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
1
},{
"identifier"
:
"WindSpeed"
,
"opcodemap"
:
"FRESH_AIR_SPEED_SET"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
,
2
,
3
],
"value"
:
1
},{
"identifier"
:
"ChildLockState"
,
"opcodemap"
:
"FRESH_AIR_SET_LOCK_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"TimingOffTime"
,
"opcodemap"
:
"FRESH_AIR_SET_TIME_OFF"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"StrainerUsageTime"
,
"opcodemap"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"StrainerAlarmTime"
,
"opcodemap"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"CurrentTemperature"
,
"opcodemap"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
}
],
"oldccu"
:[
{
"opcode"
:
"FRESH_AIR_SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
],
"syn"
:
"on"
,
"synType"
:
"bool"
},{
"opcode"
:
"FRESH_AIR_RUN_MODEL"
,
"identifiermap"
:
"WorkMode"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"AUTO"
,
"MANUAL"
],
"syn"
:
"runModel"
,
"synType"
:
"map"
},{
"opcode"
:
"FRESH_AIR_SPEED_SET"
,
"identifiermap"
:
"WindSpeed"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"STOP"
,
"LOW"
,
"MID"
,
"HIGH"
],
"syn"
:
"speed"
,
"synType"
:
"int"
},{
"opcode"
:
"FRESH_AIR_SET_LOCK_STATUS"
,
"identifiermap"
:
"ChildLockState"
,
"dataType"
:
"bool"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"ChildLockState"
,
"synType"
:
"double"
},{
"opcode"
:
"FRESH_AIR_SET_TIME_OFF"
,
"identifiermap"
:
"TimingOffTime"
,
"dataType"
:
"string_time"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"time_off"
,
"synType"
:
"string_time"
},{
"opcode"
:
"CHOPIN_FRESH_AIR_STATUS "
,
"identifiermap"
:
"StrainerUsageTime"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"filterScreenWorkTime"
,
"synType"
:
"int"
},{
"opcode"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"identifiermap"
:
"StrainerAlarmTime"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"filterScreenAlarmTime"
,
"synType"
:
"int"
},{
"opcode"
:
"CHOPIN_FRESH_AIR_STATUS"
,
"identifiermap"
:
"CurrentTemperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"cur_temperature"
,
"synType"
:
"double"
}
]
}
opcodeMapCfg/device_3034.json
View file @
750c1fa7
{
"productCode"
:
"3034"
,
"operateType"
:
"15003"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"FAN_COIL_STATUS"
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"WorkMode"
,
"opcodemap"
:
"FAN_COIL_SET_RUN_MODEL"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
1
,
2
,
3
,
4
],
"value"
:
1
},{
"identifier"
:
"WindSpeed"
,
"opcodemap"
:
"FAN_COIL_SET_FUN_SPEED"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
1
,
2
,
3
,
4
],
"value"
:
1
},{
"identifier"
:
"TargetTemperature"
,
"opcodemap"
:
"FAN_COIL_SET_TEMPERATURE"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
16
},{
"identifier"
:
"TimingOffTime"
,
"opcodemap"
:
"FAN_COIL_SET_DELAY_SWITCH_TASK"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"ChildLockState"
,
"opcodemap"
:
"FAN_COIL_SET_LOCK_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"CurrentTemperature"
,
"opcodemap"
:
"room_temperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
22
},{
"identifier"
:
"smart_model_id"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"smart_model_time_index"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"system_time"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
"1970-01-01 00:00:00"
},{
"identifier"
:
"week_day"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"total_work_time"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"timing_boot"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
{
"enable "
:
false
,
"time"
:
"00:00"
}
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
],
"syn"
:
"on"
,
"synType"
:
"bool"
},{
"opcode"
:
"FAN_COIL_SET_RUN_MODEL"
,
"identifiermap"
:
"WorkMode"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"COLD"
,
"HOT"
,
"WIND"
,
"DEHUMIDIFICATION"
],
"syn"
:
"run_model"
,
"synType"
:
"map"
},{
"opcode"
:
"FAN_COIL_SET_FUN_SPEED"
,
"identifiermap"
:
"WindSpeed"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"AUTO"
,
"HIGH"
,
"MID"
,
"LOW"
],
"syn"
:
"fan_speed"
,
"synType"
:
"map"
},{
"opcode"
:
"FAN_COIL_SET_TEMPERATURE"
,
"identifiermap"
:
"TargetTemperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"setting_temperature"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_SET_DELAY_SWITCH_TASK"
,
"identifiermap"
:
"TimingOffTime"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"timing_shutdown"
,
"synType"
:
"timing_shutdown"
},{
"opcode"
:
"FAN_COIL_SET_LOCK_STATUS"
,
"identifiermap"
:
"ChildLockState"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
""
,
"synType"
:
"dummy"
},{
"opcode"
:
"room_temperature"
,
"identifiermap"
:
"CurrentTemperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"room_temperature"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"smart_model_id"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"smart_model_id"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"smart_model_time_index"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"smart_model_time_index"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"system_time"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"system_time"
,
"synType"
:
"map"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"week_day"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"week_day"
,
"synType"
:
"int"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"total_work_time"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"total_work_time"
,
"synType"
:
"int"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"timing_boot"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"timing_boot"
,
"synType"
:
"def"
}
]
}
{
"productCode"
:
"3034"
,
"operateType"
:
"15003"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"FAN_COIL_STATUS"
,
"newccu"
:[
{
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"WorkMode"
,
"opcodemap"
:
"FAN_COIL_SET_RUN_MODEL"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
1
,
2
,
3
,
4
],
"value"
:
1
},{
"identifier"
:
"WindSpeed"
,
"opcodemap"
:
"FAN_COIL_SET_FUN_SPEED"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
1
,
2
,
3
,
4
],
"value"
:
1
},{
"identifier"
:
"TargetTemperature"
,
"opcodemap"
:
"FAN_COIL_SET_TEMPERATURE"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
16
},{
"identifier"
:
"TimingOffTime"
,
"opcodemap"
:
"FAN_COIL_SET_DELAY_SWITCH_TASK"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"ChildLockState"
,
"opcodemap"
:
"FAN_COIL_SET_LOCK_STATUS"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},{
"identifier"
:
"CurrentTemperature"
,
"opcodemap"
:
"room_temperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
22
},{
"identifier"
:
"smart_model_id"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"smart_model_time_index"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"system_time"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
"1970-01-01 00:00:00"
},{
"identifier"
:
"week_day"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"total_work_time"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
},{
"identifier"
:
"timing_boot"
,
"opcodemap"
:
"FAN_COIL_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
{
"enable "
:
false
,
"time"
:
"00:00"
}
}
],
"oldccu"
:[
{
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
],
"syn"
:
"on"
,
"synType"
:
"bool"
},{
"opcode"
:
"FAN_COIL_SET_RUN_MODEL"
,
"identifiermap"
:
"WorkMode"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"COLD"
,
"HOT"
,
"WIND"
,
"DEHUMIDIFICATION"
],
"syn"
:
"run_model"
,
"synType"
:
"map"
},{
"opcode"
:
"FAN_COIL_SET_FUN_SPEED"
,
"identifiermap"
:
"WindSpeed"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"AUTO"
,
"HIGH"
,
"MID"
,
"LOW"
],
"syn"
:
"fan_speed"
,
"synType"
:
"map"
},{
"opcode"
:
"FAN_COIL_SET_TEMPERATURE"
,
"identifiermap"
:
"TargetTemperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"setting_temperature"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_SET_DELAY_SWITCH_TASK"
,
"identifiermap"
:
"TimingOffTime"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"timing_shutdown"
,
"synType"
:
"timing_shutdown"
},{
"opcode"
:
"FAN_COIL_SET_LOCK_STATUS"
,
"identifiermap"
:
"ChildLockState"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
""
,
"synType"
:
"dummy"
},{
"opcode"
:
"room_temperature"
,
"identifiermap"
:
"CurrentTemperature"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"room_temperature"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"smart_model_id"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"smart_model_id"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"smart_model_time_index"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"smart_model_time_index"
,
"synType"
:
"double"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"system_time"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"system_time"
,
"synType"
:
"map"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"week_day"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"week_day"
,
"synType"
:
"int"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"total_work_time"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"total_work_time"
,
"synType"
:
"int"
},{
"opcode"
:
"FAN_COIL_STATUS"
,
"identifiermap"
:
"timing_boot"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"timing_boot"
,
"synType"
:
"def"
}
]
}
opcodeMapCfg/device_3051.json
View file @
750c1fa7
{
"productCode"
:
"3051"
,
"operateType"
:
"3499"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"DOOR_CONTACT_STATUS"
,
"newccu"
:[
{
"identifier"
:
"ContactState"
,
"opcodemap"
:
"DOOR_CONTACT_NOTIFY"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},
{
"identifier"
:
"Battery"
,
"opcodemap"
:
"POWER_NOTIFY"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
}
],
"oldccu"
:[
{
"opcode"
:
"DOOR_CONTACT_NOTIFY"
,
"identifiermap"
:
"ContactState"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"CLOSE"
,
"OPEN"
],
"syn"
:
"status"
,
"synType"
:
"map"
},
{
"opcode"
:
"POWER_NOTIFY"
,
"identifiermap"
:
"Battery"
,
"dataType"
:
"string_double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"power"
,
"synType"
:
"string_double"
}
]
}
{
"productCode"
:
"3051"
,
"operateType"
:
"3499"
,
"channel"
:
1
,
"syn_type"
:
1
,
"syn_opcode"
:
"DOOR_CONTACT_STATUS"
,
"newccu"
:[
{
"identifier"
:
"ContactState"
,
"opcodemap"
:
"DOOR_CONTACT_NOTIFY"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"value"
:
0
},
{
"identifier"
:
"Battery"
,
"opcodemap"
:
"POWER_NOTIFY"
,
"dataType"
:
"double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
}
],
"oldccu"
:[
{
"opcode"
:
"DOOR_CONTACT_NOTIFY"
,
"identifiermap"
:
"ContactState"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"valueRange"
:[
"CLOSE"
,
"OPEN"
],
"syn"
:
"status"
,
"synType"
:
"map"
},
{
"opcode"
:
"POWER_NOTIFY"
,
"identifiermap"
:
"Battery"
,
"dataType"
:
"string_double"
,
"channel"
:
"1"
,
"valueRange"
:[],
"syn"
:
"power"
,
"synType"
:
"string_double"
}
]
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment