1)User request to hub for Stop
Discription: User request to hub for set_Setpoint of shade.
Direction: Application ----> SoulHub
Request Topic: "NameSpaceId + "/CONTROLLER/" + modelNumber + "/" + SERIAL + "/HUB_REQ"
e.g. TEST_123/CONTROLLER/GENfvb5fdgfgfg4/ClouzerSoulTest-51/HUB_REQ
Request Object:
{
"data":{
"requestId":"TS_1590131864339",
"userId":"admin@clouzer.com",
"clientId":"v2admin_1659160842055",
"connectionProtocol":"MQTT",
"connectionId":"TS_1590131864339",
"dataArray":[],
"updateData":{},
"queryData":{
"CML_CONTROL_MODE":1,
"CML_SUB_TYPE":"SHADE",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1657864282951384896280737"
},
"essentialList":{
"ID_ARRAY":[
"ID1657864282951384896280737"
]
},
"CallerInfo":{
"source":[],
"caller":"soulHubAction",
"portalAction":false,
"tsEntry":1659160842737
}
},
"type":"set_stop"
}
2)checking soulPy process
Discription: Hub checks python process is running or not.
Direction: SoulHub ----> ProcessMonitor
Process: "soulPy"
Request Topic: "process/status/get"
Response Topic: "process/status/get_res"
3)hub request to database for userlist
Discription: if soulPy is running then hub needs to fetch the userlist from database.
Direction: SoulHub ----> soulPy
Request Topic: "soulDb/fetch"
Request Object:
{
"data":{
"entity_type":"userlist",
"and":{
"eq":{
"username":"admin@clouzer.com"
}
}
},
"communicationId":"1659160842741get_user28",
"CallerInfo":{
"source":[],
"caller":"soulHubAction",
"portalAction":false,
"tsEntry":1659160842737
}
}
Direction: soulPy ----> soulHub
Response Topic: "soulDb/Response"
Response Object:
{
"data":[
{
"userId":"",
"username":"admin@clouzer.com",
"RECOVERY_MAIL":"admin@clouzersoul.com",
"LKEY_VAL":"admin@clouzer.com",
"ACTION":"REGISTER_HUB_USER",
"hubId":"",
"RegisterWith":"clouzer",
"firstName":"admin",
"lastName":"admin",
"JWTTOKEN":"",
"ACTIVE_STATUS":1,
"KEY_VAL":"",
"logintype":"default",
"ROLE":1,
"USM_IMAGE_PATH":"",
"entity_type":"userlist",
"CML_HIDDEN":0
},
{
"userId":"ID1657804966667940453170",
"username":"admin@clouzer.com",
"RECOVERY_MAIL":"admin@cloudsmaintenance.clouzer.com",
"LKEY_VAL":"admin@cloudsmaintenance.clouzer.com",
"ACTION":"",
"hubId":"ClouzerSoulTest-51",
"RegisterWith":"cloudsmaintenance.clouzer",
"firstName":"clouzer",
"lastName":"user",
"JWTTOKEN":"",
"ACTIVE_STATUS":1,
"KEY_VAL":"tempKeyVal",
"logintype":"user",
"ROLE":1,
"USM_IMAGE_PATH":"",
"entity_type":"userlist",
"CML_HIDDEN":1
}
],
"type":"dbFetch",
"communicationId":"1659160842741get_user28",
"CallerInfo":{
"portalAction":false,
"caller":"soulHubAction",
"source":[
"soulHub",
"soulPy"
]
}
}
4)hub request to database for role map
Discription: after fetching userlist hub request to fetch role_map.
Direction:SoulHub ----> python/DB
Request Topic: "soulDb/fetch"
Request Object:
{
"data":{
"entity_type":"role_map",
"and":{
"eq":{
"ROLE":1
}
}
},
"communicationId":"1659160843013role_map175",
"CallerInfo":{
"portalAction":false,
"caller":"soulHubAction",
"source":[
"soulHub",
"soulPy"
]
}
}
Direction: soulPy ----> soulHub
Response Topic: "soulDb/Response"
Response Object:
{
"data":[
{
"ID":"ID1657804939149286176019566",
"ROLE":1,
"RULE_ID":1,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID165780493971797945719749",
"ROLE":1,
"RULE_ID":21,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939110212934482361",
"ROLE":1,
"RULE_ID":23,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939169828374230985",
"ROLE":1,
"RULE_ID":54,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939528693387514626",
"ROLE":1,
"RULE_ID":22,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939570917227761302",
"ROLE":1,
"RULE_ID":31,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID165780493992649211128092",
"ROLE":1,
"RULE_ID":32,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939291574658040093",
"ROLE":1,
"RULE_ID":33,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939248706673048143",
"ROLE":1,
"RULE_ID":41,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID16578049393374858610603",
"ROLE":1,
"RULE_ID":42,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939884208612488340",
"ROLE":1,
"RULE_ID":43,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID165780493955464856151590",
"ROLE":1,
"RULE_ID":11,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939891182192696343",
"ROLE":1,
"RULE_ID":51,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID1657804939408133139661798",
"ROLE":1,
"RULE_ID":52,
"KEY_VAL":"",
"entity_type":"role_map"
},
{
"ID":"ID165780493948145682751619",
"ROLE":1,
"RULE_ID":53,
"KEY_VAL":"",
"entity_type":"role_map"
}
],
"type":"dbFetch",
"communicationId":"1659160843013role_map175",
"CallerInfo":{
"portalAction":false,
"caller":"soulHubAction",
"source":[
"soulHub",
"soulPy",
"soulHub",
"soulPy"
]
}
}
5)hub request to python for check device action.
Discription: hub sends request to python for check device action.
Direction: SoulHub ----> soulPy
Request Topic: "python/deviceActon"
Request Object:
{
"data":{
"requestId":"TS_1590131864339",
"userId":"admin@clouzer.com",
"clientId":"v2admin_1659160842055",
"connectionProtocol":"MQTT",
"connectionId":"TS_1590131864339",
"dataArray":[],
"updateData":{},
"queryData":{
"CML_CONTROL_MODE":1,
"CML_SUB_TYPE":"SHADE",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1657864282951384896280737"
},
"essentialList":{
"ID_ARRAY":[
"ID1657864282951384896280737"
]
},
"CallerInfo":{
"source":[
"soulHub"
],
"caller":"soulHubAction",
"portalAction":false,
"tsEntry":1659160842737
},
"communicationId":"1659160843284setStop149"
},
"type":"set_stop"
}
Direction: soulPy ----> soulHub
Response Object: "node/deviceState"
Response Object:
{
"data":{
"requestId":"TS_1590131864339",
"userId":"admin@clouzer.com",
"clientId":"v2admin_1659160842055",
"connectionProtocol":"MQTT",
"connectionId":"TS_1590131864339",
"dataArray":[
{
"CML_SCENE_ID":-1,
"override":"",
"CML_STATE":0,
"CML_SETPOINT":0,
"CML_STATUS":1,
"TOP_TO_BOTTOM_LEVEL":0,
"BOTTOM_TO_TOP_LEVEL":0,
"DEVICE_ID":"ID1657864282951384896280737",
"LKEY_VAL":"ID1657864282951384896280737",
"STRUCTURE_ID":"ID165786438343196932317753",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1657864282951384896280737",
"KEY_TYPE":"TSK",
"SUB_KEY_TYPE":"TSK_PRO_DEV_ORG",
"CML_TYPE":"DEVICE",
"CML_SUB_TYPE":"SHADE",
"CML_TITLE":"shade1",
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_HUB_1657804924595_18#SEC_PRO_DEV_ORG_001#TSK_PRO_DEV_ORG_1659156055277_85",
"SYNC_PENDING_STATUS":-1,
"CREATED_BY_ON_CLOUZER_SOUL":"",
"CREATED_ON_ON_CLOUZER_SOUL":1657864272767,
"LAST_MODIFIED_BY_ON_CLOUZER_SOUL":"",
"LAST_MODIFIED_ON_ON_CLOUZER_SOUL":1657864272767,
"CREATED_BY":"",
"CREATED_ON":"",
"LAST_MODIFIED_BY":"",
"LAST_MODIFIED_ON":"",
"ACTIVE_STATUS":1,
"CML_MANUFACTURER_NAME":"simulationShade",
"CML_MANUFACTURER_ID":"",
"CML_SERIAL_ID":"165786289339813692679",
"CML_NAME":"shade1",
"CML_TESTABLE":"true",
"CML_MAC_ID":"",
"CML_INSTALLATION_DATE":"",
"CML_CONTROLLER_ID":"NA",
"CML_CONTROL_MODE":1,
"CML_EXPIRY_DATE":"",
"IO_MODE":-1,
"INPUT_PROTOCOL":"",
"OUTPUT_PROTOCOL":"",
"CML_SUPPORTING_ZONE":"NA",
"CML_SUPPORTED_TYPE":"SHADE",
"CML_DEVICE_FIRMWARE":"NA",
"MODEL_NUMBER":"NA",
"OWNER_ID":"NA",
"concept":"SHADE",
"COLOR_SUPPORTED":0,
"CML_DEVICE_REF":"",
"CML_GROUP_REF":"",
"CREDENTIAL_ID":"NA",
"INTERFACE_ID":"NA",
"entity_type":"devices",
"CML_SWITCH_CNTR_ID":"NA",
"CML_SHORT_NAME":"NA",
"DEVICE_TYPE_ID":""
}
],
"updateData":{},
"queryData":{
"CML_CONTROL_MODE":1,
"CML_SUB_TYPE":"SHADE",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1657864282951384896280737"
},
"essentialList":{
"ID_ARRAY":[
"ID1657864282951384896280737"
]
},
"CallerInfo":{
"source":[
"soulHub",
"soulPy"
],
"caller":"soulHubAction",
"portalAction":false,
"tsEntry":1659160842737
},
"communicationId":"1659160843284setStop149"
},
"type":"set_stop_hub"
}
6)hub request to dapi for set state
Discription: hub respond with updated device status and then after request for dapi to set state
Direction: SoulHub ----> dapi
Request Topic: "simulationshade/shade/set_stop_hub"
Request Object:
{
"deviceArr":[
{
"id":"165786289339813692679",
"controllerId":"NA"
}
],
"CallerInfo":{
"source":[
"soulHub"
],
"caller":"soulHubAction",
"portalAction":false,
"tsEntry":1659160842737
},
"requestId":"TS_1590131864339",
"userId":"admin@clouzer.com",
"CML_SCENE_ID":-1,
"override":"",
"state":0,
"setpoint":0,
"status":1,
"topToBottomLevel":0,
"bottomToTopLevel":0,
"device_id":"ID1657864282951384896280737",
"LKEY_VAL":"ID1657864282951384896280737",
"STRUCTURE_ID":"ID165786438343196932317753",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1657864282951384896280737",
"KEY_TYPE":"TSK",
"SUB_KEY_TYPE":"TSK_PRO_DEV_ORG",
"cml_type":"DEVICE",
"deviceType":"SHADE",
"title":"shade1",
"key_val":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_HUB_1657804924595_18#SEC_PRO_DEV_ORG_001#TSK_PRO_DEV_ORG_1659156055277_85",
"SYNC_PENDING_STATUS":-1,
"CREATED_BY_ON_CLOUZER_SOUL":"",
"CREATED_ON_ON_CLOUZER_SOUL":1657864272767,
"LAST_MODIFIED_BY_ON_CLOUZER_SOUL":"",
"LAST_MODIFIED_ON_ON_CLOUZER_SOUL":1657864272767,
"CREATED_BY":"",
"CREATED_ON":"",
"LAST_MODIFIED_BY":"",
"LAST_MODIFIED_ON":"",
"ACTIVE_STATUS":1,
"manufacturer":"simulationShade",
"CML_MANUFACTURER_ID":"",
"id":"165786289339813692679",
"device_name":"shade1",
"CML_TESTABLE":"true",
"CML_MAC_ID":"",
"CML_INSTALLATION_DATE":"",
"controllerId":"NA",
"CML_CONTROL_MODE":1,
"CML_EXPIRY_DATE":"",
"IO_MODE":-1,
"INPUT_PROTOCOL":"",
"OUTPUT_PROTOCOL":"",
"supporting_zone":"NA",
"supported_type":"SHADE",
"CML_DEVICE_FIRMWARE":"NA",
"product_id":"NA",
"OWNER_ID":"NA",
"concept":"SHADE",
"COLOR_SUPPORTED":0,
"CML_DEVICE_REF":"",
"CML_GROUP_REF":"",
"CREDENTIAL_ID":"NA",
"INTERFACE_ID":"NA",
"entity_type":"devices",
"switchcontrollerId":"NA",
"CML_SHORT_NAME":"NA",
"DEVICE_TYPE_ID":""
}