1)User Request to SoulHub from Application
Description: User sends request to SoulHub for provision devices into property.
Direction: Application ----> SoulHub
Request Topic: "NameSpaceId + "/INSTALLER/" + modelNumber + "/" + SERIAL + "/HUB_REQ"
e.g. "e.g. "TEST_123/INSTALLER/GENfvb5fdgfgfg4/ClouzerSoulTest-51/HUB_REQ""
Request Object:
{
"type":"provision_device",
"data":
{
"queryData":
{
"DEVICE_ID":["ID1658580670990498783153"]
},
"userId":"ashwini.tote@bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com",
"clientId":"IOSCocoaMQTT3163",
"updateData":
{
"CML_TITLE":"mirabella ebfhg",
"STRUCTURE_ID":"ID165786438343196932317753",
"CML_SUPPORTED_TYPE":"LIGHT",
"CML_INSTALLATION_DATE":"",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753"},
"requestId":"TS_1658580706966",
"token":"IOSCocoaMQTT3163_1658580171314",
"CallerInfo":
{
"caller":"UprovisionedView_saveBtn_call",
"source":["iOS_ClouzerEdgeInstaller"],
"portalAction":true,
"tsEntry":1658580707136
}
}
}
2)checking soulPy process
Description: SoulHub checks python process is running or not.
Direction: SoulHub ----> ProcessMonitor
process: "soulPy"
Request Topic: "process/status/get"
Response Topic: "process/status/get_res"
3)SoulHub request to db for userlist
Description: if process is running then SoulHub needs to fetch the userlist.
Direction: SoulHub ----> soulPy
Request Topic: "soulDb/fetch"
Direction: soulPy ----> soulHub
Request Object:
{
"data":
{
"entity_type":"userlist",
"and":
{
"eq":
{
"username":"ashwini.tote@bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com"
}
}
},
"communicationId":"1658580707142get_user242",
"CallerInfo":
{
"caller":"UprovisionedView_saveBtn_call",
"source":["iOS_ClouzerEdgeInstaller"],
"portalAction":true,"tsEntry":1658580707136
}
}
Direction: soulPy ----> soulHub
Response Topic: "soulDb/Response"
Response Object:
{
"data":
[
{
"userId": "ID1657804967919016366261454",
"username": "ashwini.tote@bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com",
"RECOVERY_MAIL": "ashwini.tote@clouzer.com",
"LKEY_VAL": "ashwini.tote@clouzer.com",
"ACTION": "",
"hubId": "ClouzerSoulTest-51",
"RegisterWith": "clouzer",
"firstName": "Ashwini",
"lastName": "Tote",
"JWTTOKEN": "", "ACTIVE_STATUS": 1,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"logintype": "user",
"ROLE": 165780494067592,
"USM_IMAGE_PATH": "",
"entity_type": "userlist",
"CML_HIDDEN": 0}],
"type": "dbFetch",
"communicationId": "1658580707142get_user242",
"CallerInfo":
{
"portalAction": true,
"caller": "UprovisionedView_saveBtn_call",
"source": ["iOS_ClouzerEdgeInstaller","soulHub", "soulPy"]
}
}
]
}
4)SoulHub request to db for role_map
Description: after fetching userlist SoulHub needs to fetch the role_map table.
Direction: SoulHub ----> soulPy
Request Topic: "soulDb/fetch"
Request Object:
{
"data":
{
"entity_type":"role_map",
"and":
{"eq":{"ROLE":165780494067592}}},
"communicationId":"1658580707425role_map109",
"CallerInfo":
{
"portalAction":true,
"caller":"UprovisionedView_saveBtn_call",
"source":["iOS_ClouzerEdgeInstaller","soulHub","soulPy"]
}
}
Direction: soulPy ----> soulHub
Response Topic: "soulDb/Response"
Response Object:
{
"data":
[
{
"ID": "ID165780494477926",
"ROLE": 165780494067592,
"RULE_ID": 54,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494450909",
"ROLE": 165780494067592,
"RULE_ID": 22,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494519648",
"ROLE": 165780494067592,
"RULE_ID": 32,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494663324",
"ROLE": 165780494067592,
"RULE_ID": 21,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494726996",
"ROLE": 165780494067592,
"RULE_ID": 1,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494827473",
"ROLE": 165780494067592,
"RULE_ID": 100,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494821534",
"ROLE": 165780494067592,
"RULE_ID": 23,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780494998496",
"ROLE": 165780494067592,
"RULE_ID": 33,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495085440",
"ROLE": 165780494067592,
"RULE_ID": 11,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495163810",
"ROLE": 165780494067592,
"RULE_ID": 41,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495131434",
"ROLE": 165780494067592,
"RULE_ID": 31,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495256535",
"ROLE": 165780494067592,
"RULE_ID": 52,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495312008",
"ROLE": 165780494067592,
"RULE_ID": 53,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495483303",
"ROLE": 165780494067592,
"RULE_ID": 51,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495524338",
"ROLE": 165780494067592,
"RULE_ID": 43,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
},
{
"ID": "ID165780495598081",
"ROLE": 165780494067592,
"RULE_ID": 42,
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
"entity_type": "role_map"
}
],
"type": "dbFetch",
"communicationId": "1658580707425role_map109",
"CallerInfo":
{
"portalAction": true,
"caller": "UprovisionedView_saveBtn_call",
"source": ["iOS_ClouzerEdgeInstaller", "soulHub", "soulPy", "soulHub", "soulPy"]
}
}
5)SoulHub request to db for devices
Description: after fetching role map SoulHub needs to update table device.
Direction: SoulHub ----> soulPy
Request Topic: "soulDb/update"
Resquest Object:
{
"data":
[
{
"entity_type":"devices",
"essentialObj":{"DEVICE_ID":"ID1658580670990498783153"},
"and":
{
"eq":
{
"DEVICE_ID":"ID1658580670990498783153"
}
},
"set":
{
"CML_TITLE":"mirabella ebfhg",
"STRUCTURE_ID":"ID165786438343196932317753",
"CML_SUPPORTED_TYPE":"LIGHT",
"CML_INSTALLATION_DATE":"",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1658580670990498783153"
}
}
],
"communicationId":"1658580707704provisionDevice186",
"CallerInfo":
{
"portalAction":true,
"caller":"UprovisionedView_saveBtn_call",
"source":["iOS_ClouzerEdgeInstaller","soulHub","soulPy","soulHub","soulPy"]
}
}
Direction: soulPy ----> soulHub
Response Topic: "soulDb/Response"
Response Object:
{
"data":
[
{
"DEVICE_ID": "ID1658580670990498783153",
"LKEY_VAL": "ID1658580670990498783153",
"STRUCTURE_ID": "ID165786438343196932317753",
"TARGET": "/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID1658580670990498783153",
"KEY_TYPE": "TSK",
"SUB_KEY_TYPE": "TSK_PRO_DEV_ORG",
"CML_TYPE": "DEVICE",
"CML_SUB_TYPE": "LIGHT",
"CML_TITLE": "mirabella ebfhg",
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1657801024796_1670#SEC_PRO_DEV_ORG_1657801029058_79#TSK_PRO_DEV_ORG_1658580672844_57",
"SYNC_PENDING_STATUS": -1,
"CREATED_BY_ON_CLOUZER_SOUL": "",
"CREATED_ON_ON_CLOUZER_SOUL": 1658580670517,
"LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "",
"LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1658580670517,
"CREATED_BY": "",
"CREATED_ON": "",
"LAST_MODIFIED_BY": "",
"LAST_MODIFIED_ON": "",
"ACTIVE_STATUS": 1,
"CML_MANUFACTURER_NAME": "mirabella",
"CML_MANUFACTURER_ID": "",
"CML_SERIAL_ID": "ebfhg",
"CML_NAME": "mirabella ebfhg",
"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": "LIGHT",
"CML_DEVICE_FIRMWARE": "NA",
"MODEL_NUMBER": "B82CA0622761",
"OWNER_ID": "NA",
"override": "",
"concept": "LIGHT",
"COLOR_SUPPORTED": 0,
"CML_DEVICE_REF": "",
"CML_GROUP_REF": "",
"CREDENTIAL_ID": "ID1658578316112136103635188",
"INTERFACE_ID": "ID165848557535807991755172",
"entity_type": "devices",
"CML_SWITCH_CNTR_ID": "NA",
"CML_SHORT_NAME": "smartLight",
"DEVICE_TYPE_ID": ""
}
],
"type": "dbUpdate",
"communicationId": "1658580707704provisionDevice186",
"CallerInfo":
{
"portalAction": true,
"caller": "UprovisionedView_saveBtn_call",
"source": ["iOS_ClouzerEdgeInstaller", "soulHub", "soulPy", "soulSoulHub", "soulPy","soulPy"]
}
}
6)SoulHub request to dapi for get properties
Description: SoulHub request to dapi to get properties.
Direction: SoulHub ----> dapi
Request Topic: "getProperties/light/mirabella"
Request Object:
{
"deviceArr":
[
{
"device_id":"ID165858369210471115480673",
"LKEY_VAL":"ID165858369210471115480673",
"STRUCTURE_ID":"ID165786438343196932317753",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID165858369210471115480673",
"KEY_TYPE":"TSK","SUB_KEY_TYPE":"TSK_PRO_DEV_ORG",
"cml_type":"DEVICE",
"deviceType":"LIGHT",
"title":"mirabella ebfhg",
"key_val":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1657801024796_1670#SEC_PRO_DEV_ORG_1657801029058_79#TSK_PRO_DEV_ORG_1658583693653_19",
"SYNC_PENDING_STATUS":-1,
"CREATED_BY_ON_CLOUZER_SOUL":"",
"CREATED_ON_ON_CLOUZER_SOUL":1658583692501,
"LAST_MODIFIED_BY_ON_CLOUZER_SOUL":"",
"LAST_MODIFIED_ON_ON_CLOUZER_SOUL":1658583692501,
"CREATED_BY":"",
"CREATED_ON":"",
"LAST_MODIFIED_BY":"",
"LAST_MODIFIED_ON":"",
"ACTIVE_STATUS"1,
"manufacturer":"mirabella",
"CML_MANUFACTURER_ID":"",
"id":"ebfhg",
"device_name":"mirabella ebfhg",
"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":"LIGHT",
"CML_DEVICE_FIRMWARE":"NA",
"product_id":"B82CA0622761",
"OWNER_ID":"NA",
"override":"",
"concept":"LIGHT",
"COLOR_SUPPORTED":0,
"CML_DEVICE_REF":"",
"CML_GROUP_REF":"",
"CREDENTIAL_ID":"ID1658578316112136103635188",
"INTERFACE_ID":"ID165848557535807991755172",
"entity_type":"devices",
"switchcontrollerId":"NA",
"CML_SHORT_NAME":"smartLight",
"DEVICE_TYPE_ID":""
}
],
"communicationId":"1658583756121provisionDevice18",
"CallerInfo":
{
"portalAction":true,
"caller":"UprovisionedView_saveBtn_call",
"source":["iOS_ClouzerEdgeInstaller","soulHub","soulPy","soulHub","soulPy","soulHub"]
}
}
Direction: DAPI ----> soulHub
Response Topic: "getProperties_Response"
{
"dataArray":
[
{
"status":
{
"manufacturer":"mirabella",
"deviceType":"LIGHT",
"state":0,
"setpoint":72,
"id":"ebfhg",
"status":1, },
"device":
{
"id":"ebfhg",
"device_id":"ID165858369210471115480673",
"deviceType":"LIGHT"
}
}
],
"communicationId":"1658583756121provisionDevice18",
"portalAction":true
}
11)SoulHub Sends Response to App
Description: SoulHub sends response to app with following object
Direction: SoulHub ----> Application
Response Topic: "hubActionResponse/installer"
Response Object:
{
"type":"provision_device_hub",
"dataArray":
[
{
"DEVICE_ID":"ID165858369210471115480673",
"LKEY_VAL":"ID165858369210471115480673",
"STRUCTURE_ID":"ID165786438343196932317753",
"TARGET":"/ID1657800689908705780517124/ID1657805052207362508128703/ID165786438343196932317753/ID165858369210471115480673",
"KEY_TYPE":"TSK",
"SUB_KEY_TYPE":"TSK_PRO_DEV_ORG",
"CML_TYPE":"DEVICE",
"CML_SUB_TYPE":"LIGHT",
"CML_TITLE":"mirabella ebfhg",
"KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1657801024796_1670#SEC_PRO_DEV_ORG_1657801029058_79#TSK_PRO_DEV_ORG_1658583693653_19",
"SYNC_PENDING_STATUS":-1,
"CREATED_BY_ON_CLOUZER_SOUL":"",
"CREATED_ON_ON_CLOUZER_SOUL":1658583692501,
"LAST_MODIFIED_BY_ON_CLOUZER_SOUL":"",
"LAST_MODIFIED_ON_ON_CLOUZER_SOUL":1658583692501,
"CREATED_BY":"",
"CREATED_ON":"",
"LAST_MODIFIED_BY":"",
"LAST_MODIFIED_ON":"",
"ACTIVE_STATUS":1,
"CML_MANUFACTURER_NAME":"mirabella",
"CML_MANUFACTURER_ID":"",
"CML_SERIAL_ID":"ebfhg",
"CML_NAME":"mirabella ebfhg",
"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":"LIGHT",
"CML_DEVICE_FIRMWARE":"NA",
"MODEL_NUMBER":"B82CA0622761",
"OWNER_ID":"NA",
"override":"",
"concept":"LIGHT",
"COLOR_SUPPORTED":0,
"CML_DEVICE_REF":"",
"CML_GROUP_REF":"",
"CREDENTIAL_ID":"ID1658578316112136103635188",
"INTERFACE_ID":"ID165848557535807991755172",
"entity_type":"devices",
"CML_SWITCH_CNTR_ID":"NA",
"CML_SHORT_NAME":"smartLight",
"DEVICE_TYPE_ID":""
}
],
"userId":"ashwini.tote@bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com",
"requestId":"TS_1658583754599",
"CallerInfo":
{
"portalAction":true,
"caller":"UprovisionedView_saveBtn_call",
"source":["iOS_ClouzerEdgeInstaller","soulHub","soulPy","soulHub","soulPy","soulHub"]
},
"CML_HUBSERIAL_ID":"ClouzerSoulTest-51"
}
Sequence Diagram
