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":"My Honeywell Home",
                                "STRUCTURE_ID":"ID165786438343196932317753",
                                "CML_SUPPORTED_TYPE":"HVAC",
                                "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":"My Honeywell Home",
                                "STRUCTURE_ID":"ID165786438343196932317753",
                                "CML_SUPPORTED_TYPE":"HVAC",
                                "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": "HVAC", 
                        "CML_TITLE": "My Honeywell Home",
                        "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": "honeywell", 
                        "CML_MANUFACTURER_ID": "",
                        "CML_SERIAL_ID": "LCC-B82CA0622761", 
                        "CML_NAME": "My Honeywell Home", 
                        "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": "HVAC", 
                        "CML_DEVICE_FIRMWARE": "NA", 
                        "MODEL_NUMBER": "B82CA0622761",
                        "OWNER_ID": "NA", 
                        "override": "", 
                        "concept": "HVAC", 
                        "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": "ac_unit", 
                        "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/hvac/honeywell"

    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":"HVAC",
                        "title":"My Honeywell Home",
                        "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":"honeywell",
                        "CML_MANUFACTURER_ID":"",
                        "id":"LCC-B82CA0622761",
                        "device_name":"My Honeywell Home",
                        "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":"HVAC",
                        "CML_DEVICE_FIRMWARE":"NA",
                        "product_id":"B82CA0622761",
                        "OWNER_ID":"NA",
                        "override":"",
                        "concept":"HVAC",
                        "COLOR_SUPPORTED":0,
                        "CML_DEVICE_REF":"",
                        "CML_GROUP_REF":"",
                        "CREDENTIAL_ID":"ID1658578316112136103635188",
                        "INTERFACE_ID":"ID165848557535807991755172",
                        "entity_type":"devices",
                        "switchcontrollerId":"NA",
                        "CML_SHORT_NAME":"ac_unit",
                        "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":"honeywell",
                                "deviceType":"HVAC",
                                "state":0,
                                "setpoint":72,
                                "id":"LCC-B82CA0622761",
                                "highest_point":82,
                                "lower_point":62,
                                "purification_state":1,
                                "mode":0,
                                "roomtemp":76,
                                "fanSpeed":0,
                                "tempUnits":"FAHRENHEIT",
                                "minHeatSetpoint":50,
                                "maxHeatSetpoint":90,
                                "minCoolSetpoint":50,
                                "maxCoolSetpoint":90,
                                "maxtemp":90,
                                "mintemp":50,
                                "heatTo":62,
                                "coolTo":82,
                                "status":1,
                                "set_point_limit":0
                            },
                            "device":
                                {
                                    "id":"LCCB82CA0622761",
                                    "device_id":"ID165858369210471115480673",
                                    "deviceType":"HVAC"
                                }
                    }
                ],
            "communicationId":"1658583756121provisionDevice18",
            "portalAction":true
        }

7)dapi request to SoulHub for getting credentials

    Description: dapi request to SoulHub to get credentials.

    Direction: dapi ----> SoulHub

    Request Topic: Request Topic: "device/getCredentials"

    Resquest Object:

    Response Topic: "dapi/getCredentials"

    Response Object:

8)SoulHub request to db for credentials

    Description: after receiving request from dapi SoulHub request for credentials to database.
    Direction: SoulHub ----> soulDb
    Request Topic: "soulDb/fetch"
    Response Topic: "soulDb/Response"

9)SoulHub request to python for set properties

    Description: SoulHub needs to set properties therefore SoulHub send request to python and sends back response to App updated status of device.

    Direction: SoulHub ----> python

    Request Topic: "python/setProperties"

    Request Object:

        {
            "communicationId":"1658583757130updateProperties173",
            "type":"set_properties_device",
            "dataArray":
            [
                {
                    "CML_SUB_TYPE":"HVAC",
                    "CML_SERIAL_ID":"LCC-B82CA0622761",
                    "CML_MANUFACTURER_NAME":"honeywell",
                    "CML_STATE":0,"CML_SETPOINT":72,
                    "CML_HIGHEST_POINT":82,
                    "CML_LOWER_POINT":62,
                    "CML_PURIFICATION_STATE":1,
                    "CML_MODE":0,
                    "CML_ROOM_TEMPERATURE":76,
                    "CML_FAN_SPEED":0,
                    "CML_TEMP_UNITS":"FAHRENHEIT",
                    "MIN_HEAT_SETPOINT":50,
                    "MAX_HEAT_SETPOINT":90,
                    "MIN_COOL_SETPOINT":50,
                    "MAX_COOL_SETPOINT":90,
                    "CML_MAX_TEMP":90,
                    "CML_MIN_TEMP":50,
                    "CML_HEAT_TO":62,
                    "CML_COOL_TO":82,
                    "CML_STATUS":1,
                    "CML_SET_POINT_LIMIT":0
                }
            ],
            "CallerInfo":
                {
                    "source":["soulHub"],
                    "caller":"soulHubAction"
                    ,"portalAction":true
                }
        }

    Direction: soulPy ----> soulHub

    Response Topic: "node/setProperties"

                {
                    "communicationId": "1658583757130updateProperties173", 
                    "CallerInfo": 
                        {
                            "source": ["soulHub", "soulPy"], 
                            "caller": "soulHubAction", "portalAction": true
                        }, 
                        "type": "set_properties_device_hub", 
                        "data": 
                            {
                                "dataArray": 
                                    [
                                        {
                                            "CML_MAX_TEMP": 90, 
                                            "CML_MIN_TEMP": 50, 
                                            "CML_TEMP_UNITS": "FAHRENHEIT", 
                                            "CML_LOWER_POINT": 62, 
                                            "CML_HIGHEST_POINT": 82, 
                                            "CML_HEAT_TO": 62, 
                                            "CML_COOL_TO": 82, 
                                            "CML_ROOM_TEMPERATURE": 76, 
                                            "CML_SET_POINT": 0, 
                                            "CML_MODE": 0, 
                                            "CML_PREVIOUSE_MODE": 0, 
                                            "CML_STATUS": 1, 
                                            "CML_INDOOR_HUMIDITY": 0, 
                                            "CML_FAN_SPEED": 0, 
                                            "CML_STATE": 0, 
                                            "CML_THERMOSTATSETPOINTSTATUS": 0, 
                                            "CML_SET_POINT_LIMIT": 0, 
                                            "MIN_HEAT_SETPOINT": 50, 
                                            "MAX_HEAT_SETPOINT": 90, 
                                            "MIN_COOL_SETPOINT": 50, 
                                            "MAX_COOL_SETPOINT": 90, 
                                            "CML_AUTO_MODE": 0, 
                                            "override": "", 
                                            "CML_SET_POINT_DELTA": 0, 
                                            "CML_SCENE_ID": -1, 
                                            "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": "HVAC", 
                                            "CML_TITLE": "My Honeywell Home", 
                                            "KEY_VAL": "bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_HUB_1657804924595_18#SEC_PRO_DEV_ORG_001#TSK_PRO_DEV_ORG_1658583756178_75", 
                                            "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": "honeywell", 
                                            "CML_MANUFACTURER_ID": "", 
                                            "CML_SERIAL_ID": "LCC-B82CA0622761", 
                                            "CML_NAME": "My Honeywell Home", 
                                            "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": "HVAC", 
                                            "CML_DEVICE_FIRMWARE": "NA", 
                                            "MODEL_NUMBER": "B82CA0622761", 
                                            "OWNER_ID": "NA", 
                                            "concept": "HVAC", 
                                            "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": "ac_unit", 
                                            "DEVICE_TYPE_ID": ""
                                        }
                                    ]
                                }
                            }
                }

10)SoulHub request to db for devices

    Description: after seting properties SoulHub sends request to database for update device data.

    Direction:  SoulHub ----> soulPy

    Request Topic: "soulDb/update"

    Request Object:

        {
            "data":
                [
                    {
                        "entity_type":"devices",
                        "and":
                            {
                                "eq":
                                    {
                                        "DEVICE_ID":"ID165858369210471115480673"
                                    }
                            },
                            "set":
                                {
                                    "STRUCTURE_ID":"ID165786438343196932317753",
                                    "KEY_VAL":"bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_HUB_1657804924595_18#SEC_PRO_DEV_ORG_001#TSK_PRO_DEV_ORG_1658583756178_75"
                                }
                    }
                ],
                "communicationId":"1658583756805updateDevice45",
                "CallerInfo":
                    {
                        "source":["CLOUDS"],
                        "caller":"be_internal_clouds",
                        "portalAction":true,
                        "tsEntry":1658583756798
                    }
        }

    Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

    Response Object:

        {
            "data": 
                [
                    {
                        "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": "HVAC", 
                        "CML_TITLE": "My Honeywell Home", 
                        "KEY_VAL": "bgfhiaajiafbiicfb.cloudsbuilder.clouzer.com#PRJ_HUB_1657804924595_18#SEC_PRO_DEV_ORG_001#TSK_PRO_DEV_ORG_1658583756178_75", 
                        "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": "honeywell", 
                        "CML_MANUFACTURER_ID": "", 
                        "CML_SERIAL_ID": "LCC-B82CA0622761", 
                        "CML_NAME": "My Honeywell Home", 
                        "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": "HVAC", 
                        "CML_DEVICE_FIRMWARE": "NA", 
                        "MODEL_NUMBER": "B82CA0622761", 
                        "OWNER_ID": "NA", 
                        "override": "", 
                        "concept": "HVAC", 
                        "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": "ac_unit", 
                        "DEVICE_TYPE_ID": ""
                    }
                ], 
                "type": "dbUpdate", 
                "communicationId": "1658583756805updateDevice45", 
                "CallerInfo": 
                    {
                        "portalAction": true, 
                        "caller": "be_internal_clouds", 
                        "source": ["CLOUDS", "soulHub", "soulPy"]
                    }
        }

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":"HVAC",
                            "CML_TITLE":"My Honeywell Home",
                            "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":"honeywell",
                            "CML_MANUFACTURER_ID":"",
                            "CML_SERIAL_ID":"LCC-B82CA0622761",
                            "CML_NAME":"My Honeywell Home",
                            "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":"HVAC",
                            "CML_DEVICE_FIRMWARE":"NA",
                            "MODEL_NUMBER":"B82CA0622761",
                            "OWNER_ID":"NA",
                            "override":"",
                            "concept":"HVAC",
                            "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":"ac_unit",
                            "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

test