INITIAL SYNC FLOW

Clouzer checks property status first, hub is configured or not.

1)Checking soulPy process status

    Discription : SoulHub checks python process is running or not.

    Direction: SoulHub ----> ProcessMonitor

    Request Topic: "process/status/get"

    Request Object:

        {
            "data": {
                "process": "soulPy"
            },
            "type": "get_status",
            "userId": "admin@clouzer.com",
            "communicationId": "1659588047690checkProcessesStatus131",
            "CallerInfo": {
                "source": [],
                "caller": "soulHubAction"
            }
        }

    Response Topic: "process/status/get_res"

    Response Object:

        {
            "type": "get_status_hub",
            "dataArray": [
                {
                "action": "connected",
                "ts": 1659588012761,
                "containerId": "fece2e87728d",
                "process": "soulPy"
                }
            ],
            "userId": "admin@clouzer.com",
            "communicationId": "1659588047690checkProcessesStatus131"
        }

2)SoulHub fetch property data from database.

    Discription: if pyProcess is running, SoulHub checks for KEY_VAL.

    Direction: SoulHub ----> soulPy

    Table: "property"

    Request Topic: "soulDb/fetch"

    Response Object:

        {
            "data":{
                "entity_type":"property"
            },
            "communicationId":"1659593548247checkPropertyStatus47",
            "CallerInfo":{
                "source":[
                    "CLOUDS"
                ],
                "caller":"be_internal_clouds",
                "portalAction":true,
                "tsEntry":1659593548232
            }
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

    Response Object:

        {
            "data":[
                {
                    "PROPERTY_ID":"ID1659592983273563217913571",
                    "LKEY_VAL":"",
                    "KEY_VAL":"",
                    "CML_TYPE":"property",
                    "TARGET":"/ID1659592983273563217913571",
                    "SYNC_PENDING_STATUS":0,
                    "CML_TITLE":"",
                    "KEY_TYPE":"PRJ",
                    "SUB_KEY_TYPE":"PRJ_PRO",
                    "CREATED_BY_ON_CLOUZER_SOUL":"",
                    "CREATED_ON_ON_CLOUZER_SOUL":1659592983,
                    "LAST_MODIFIED_BY_ON_CLOUZER_SOUL":"",
                    "LAST_MODIFIED_ON_ON_CLOUZER_SOUL":1659592983,
                    "CREATED_BY":"",
                    "CREATED_ON":"",
                    "LAST_MODIFIED_BY":"",
                    "LAST_MODIFIED_ON":"",
                    "ACTIVE_STATUS":1,
                    "CML_RETROFIT":"",
                    "LOCATION_ID":"ID1659592983686723708084757",
                    "entity_type":"property",
                    "PROPERTY_TYPE":"",
                    "CML_IMAGE_PATH":[

                    ]
                }
            ],
            "type":"dbFetch",
            "communicationId":"1659593548247checkPropertyStatus47",
            "CallerInfo":{
                "portalAction":true,
                "caller":"be_internal_clouds",
                "source":[
                    "CLOUDS",
                    "soulPy"
                ]
            }
        }

3)Starting Initial Sync

    Description: Clouzer sends all configuration data counts details to SoulHub.

    Direction: Clouzer ----> soulHub

    Request Topic: "NameSpaceId + "/INSTALLER/" + modelNumber + "/" + SERIAL + "/HUB_REQ"

    Request object:

        {
            "data":{
                "dataArray":[
                    {
                        "property":1,
                        "location":1,
                        "floor":1,
                        "room":1,
                        "user":2,
                        "scene":0,
                        "role":1,
                        "role_map":16
                    }
                ],
                "requestId":"/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "userId":"tech.support@clouzer.com",
                "connectionProtocol":"MQTT",
                "connectionId":"/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "CallerInfo":{
                    "portalAction":true,
                    "caller":"be_internal_clouds",
                    "source":[
                        "CLOUDS",
                        "soulPy"
                    ],
                    "tsEntry":1659593554004
                },
                "clientId":"CLOUDS"
            },
            "type":"initial_sync_start"
        }

4)Store data in database

    Description: Store configuration data count in database.

    Direction: SoulHub ----> soulPy

    Request Topic: "python/Request"

    Request Object:

        {
            "data":{
                "dataArray":[
                    {
                        "property":1,
                        "location":1,
                        "floor":1,
                        "room":1,
                        "user":2,
                        "scene":0,
                        "role":1,
                        "role_map":16
                    }
                ],
                "requestId":"/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "userId":"tech.support@clouzer.com",
                "connectionProtocol":"MQTT",
                "connectionId":"/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "CallerInfo":{
                    "portalAction":true,
                    "caller":"be_internal_clouds",
                    "source":[
                        "CLOUDS",
                        "soulPy"
                    ],
                    "tsEntry":1659593554004
                },
                "clientId":"CLOUDS"
            },
            "type":"initial_sync_start",
            "communicationId":"1659593554020startInitialSync199"
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "node/Request"

    Response Object:

        {
            "type":"initial_sync_start_hub",
            "data":[
                {
                    "property":1,
                    "location":1,
                    "floor":1,
                    "room":1,
                    "user":2,
                    "scene":0,
                    "role":1,
                    "role_map":16
                }
            ],
            "communicationId":"1659593554020startInitialSync199",
            "requestId":"/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
            "userId":"tech.support@clouzer.com",
            "clientId":"CLOUDS",
            "CallerInfo":{
                "source":[
                    "CLOUDS",
                    "soulPy",
                    "soulPy"
                ],
                "caller":"be_internal_clouds"
            }
            }

5)Change SoulHub mode

    Description: CONFIG_SYNC mode started.

    Direction: SoulHub ----> soulPy

    Request Topic: "soulHub/mode"

    Request Object -

    {
        "type": "change_mode",
        "data": {
            "systemData": [
                {
                    "hubMode": "CONFIG_SYNC"
                }
            ],
            "requestId":"/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
            "userId":"tech.support@clouzer.com",
            "clientId":"CLOUDS",
            "CallerInfo": {
                "source": [
                    "UI"
                ],
                "caller": "onclick_event"
            }
        }
    }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulHub/ack/mode"

6)Checking soulPy process status

    Discription: SoulHub checks python process is running or not.

    Direction: SoulHub ----> ProcessMonitor

    Process: "soulPy"

    Request Topic: "process/status/get"

    Response Direction: soulPy ----> soulHub

    Response Topic: "process/status/get_res"

7)Change SoulHub mode

    Description: INITIAL_SYNC_START mode started.

    Direction: SoulHub ----> soulPy

    SoulHub Mode: "INITIAL_SYNC_START"

    Status: 12

    Request Topic: "soulHub/mode"

    Request Object:

        {           
            "communicationId": "1659593554204changeMode149",
            "data": {
                "listener": "soulPy",
                "mode": "12"
            },
            "CallerInfo": {}
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulHub/ack/mode"

    Response Object:

        {
            "communicationId":"1659593554204changeMode149",
            "data":{
                "listener":"soulPy",
                "mode":"12"
            },
            "CallerInfo":{

            },
            "error":false
        }

8)SoulHub updates mode in database

    Description: after setting process mode as "INITIAL_SYNC_START" SoulHub updates mode in database

    Direction: Soulhub ----> soulPy

    Table: "hubInfo"

    Request Topic: "soulDb/update"

    Request Object:

        {
            "data": {
                "entity_type": "hubInfo",
                "set": {
                "CML_HUB_MODE": "INITIAL_SYNC_START",
                "CML_CONFIG_START_TIME": "1659593554296",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_START"
                }
            },
            "communicationId": "1659593554299updateModeInDB7",
            "CallerInfo": {}
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

    Response Object:

        {
            "data": [
                {
                "CML_HUBSERIAL_ID": "ClouzerSoulTest-37",
                "CML_HUBAUTH_ID": "eLGCqZIgxXAX",
                "LKEY_VAL": "ClouzerSoulTest-37",
                "KEY_VAL": "ClouzerSoulTest-37",
                "SYNC_PENDING_STATUS": -1,
                "ACTIVE_STATUS": 1,
                "KEY_TYPE": "TSK",
                "SUB_KEY_TYPE": "IOE",
                "CML_FIRMWARE_MODULE": "0.0.0-alpha.3",
                "CML_FIRMWARE_DEPENDANCY": "0.0.0-alpha.3",
                "CML_FIRMWARE_SOUND": "0.0.0-alpha.9",
                "CML_FIRMWARE_HUB": "NA",
                "CML_FIRMWARE_PORTAL": "0.0.0-alpha.17",
                "CML_FIRMWARE_SOUL_SYSTEM": "NA",
                "CML_MANUFACTURER": "Clouds Inc.",
                "CML_FAMILY_NAME": "NA",
                "CML_HUB_SUBSCRIPTION": "Basic",
                "CML_AQI_CALCULATION_FLAG": "false",
                "CML_HUB_GENERATION": "V2",
                "CML_ACT_ROLE": "",
                "LOCATION_ID": "ID1659592983686723708084757",
                "PROPERTY_ID": "ID1659592983273563217913571",
                "CML_HUB_MODE": "INITIAL_SYNC_START",
                "CML_CONFIG_COUNT": -1,
                "CML_CONFIG_START_TIME": "1659593554296",
                "CML_CONFIG_END_TIME": "",
                "entity_type": "hubInfo",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_START",
                "ALLOW_PACKAGE_VALIDATION": 1
                }
            ],
            "type": "dbUpdate",
            "communicationId": "1659593554299updateModeInDB7",
            "CallerInfo": {}
        }

9)Checking soulPy process status

    Discription: SoulHub checks python process is running or not.

    Direction: SoulHub ----> ProcessMonitor

    Process: "soulPy"

    Request Topic: "process/status/get"

    Response Topic: "process/status/get_res"

10)Change SoulHub mode

    Description: INITIAL_SYNC_START mode started.

    Direction: SoulHub ----> soulPy

    SoulHub Mode: "INITIAL_SYNC_STARTED"

    Status: 13

    Request Topic: "soulHub/mode"

    Request Object:

        {
            "communicationId": "1659593555233changeMode53",
            "data": {
                "listener": "soulPy",
                "mode": "13"
            },
            "CallerInfo": {}
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulHub/ack/mode"

    Response Object:

        {
            "communicationId": "1659593555233changeMode53",
            "data": {
                "listener": "soulPy",
                "mode": "13"
            },
            "CallerInfo": {},
            "error": false
        }

11)SoulHub updates mode in database

    Description: after setting process mode as "INITIAL_SYNC_STARTED" SoulHub updates mode in database

    Direction: Soulhub ----> soulPy

    Table: "hubInfo"

    Request Topic: "soulDb/update"

    Request Object:

        {
            "data": {
                "entity_type": "hubInfo",
                "set": {
                "CML_HUB_MODE": "INITIAL_SYNC_STARTED",
                "CML_CONFIG_START_TIME": "1659593555294",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_STARTED"
                }
            },
            "communicationId": "1659593555294updateModeInDB95",
            "CallerInfo": {}
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

    Response Object:

        {
            "data": [
                {
                "CML_HUBSERIAL_ID": "ClouzerSoulTest-37",
                "CML_HUBAUTH_ID": "eLGCqZIgxXAX",
                "LKEY_VAL": "ClouzerSoulTest-37",
                "KEY_VAL": "ClouzerSoulTest-37",
                "SYNC_PENDING_STATUS": -1,
                "ACTIVE_STATUS": 1,
                "KEY_TYPE": "TSK",
                "SUB_KEY_TYPE": "IOE",
                "CML_FIRMWARE_MODULE": "0.0.0-alpha.3",
                "CML_FIRMWARE_DEPENDANCY": "0.0.0-alpha.3",
                "CML_FIRMWARE_SOUND": "0.0.0-alpha.9",
                "CML_FIRMWARE_HUB": "NA",
                "CML_FIRMWARE_PORTAL": "0.0.0-alpha.17",
                "CML_FIRMWARE_SOUL_SYSTEM": "NA",
                "CML_MANUFACTURER": "Clouds Inc.",
                "CML_FAMILY_NAME": "NA",
                "CML_HUB_SUBSCRIPTION": "Basic",
                "CML_AQI_CALCULATION_FLAG": "false",
                "CML_HUB_GENERATION": "V2",
                "CML_ACT_ROLE": "",
                "LOCATION_ID": "ID1659592983686723708084757",
                "PROPERTY_ID": "ID1659592983273563217913571",
                "CML_HUB_MODE": "INITIAL_SYNC_STARTED",
                "CML_CONFIG_COUNT": -1,
                "CML_CONFIG_START_TIME": "1659593555294",
                "CML_CONFIG_END_TIME": "",
                "entity_type": "hubInfo",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_STARTED",
                "ALLOW_PACKAGE_VALIDATION": 1
                }
            ],
            "type": "dbUpdate",
            "communicationId": "1659593555294updateModeInDB95",
            "CallerInfo": {}
        }

12)Received compressed data from clouzer.

13)Send sync data to pyProcess.

    Description: SoulHub sends data to soulPy.

    Direction: SoulHub ----> soulPy

    Request Topic: "python/sync"

    Request Object:

        {
            "data": {
                "dataArray": [
                {
                    "property": [
                    {
                        "CML_TITLE": "SQ",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300",
                        "CML_IMAGE_PATH": [
                        "/hdfs/kavita.pansare@clouzer.com/Cloud Vault/Media/Upload/2022/Aug/1659590565111_4931_Imgclz7705.jpeg?op=OPEN"
                        ],
                        "LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1659593555127
                    }
                    ],
                    "roleRule": [
                    {
                        "RULES": [
                        54,
                        22,
                        32,
                        21,
                        1,
                        100,
                        23,
                        33,
                        11,
                        41,
                        31,
                        52,
                        53,
                        51,
                        43,
                        42
                        ],
                        "ROLE_NAME": "Admin",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002"
                    }
                    ],
                    "location": [
                    {
                        "CML_CITY": "Pune",
                        "CML_COUNTRY_CODE": "IN",
                        "CML_COUNTRY": "India",
                        "CML_LATITUDE": "18.50658499999999",
                        "CML_LONGITUDE": "73.8024811",
                        "CML_TIMEZONE": "Asia/Calcutta",
                        "CML_LOCATION": "Kothrud Police Station, Paud Road, Near Wanaj Company, Navbhumi, Shastri Nagar, Kothrud, Pune, Maharashtra, India",
                        "CML_ZIPCODE": "411011",
                        "CML_CONTINENT": "Asia",
                        "CML_STATE": "Maharashtra"
                    }
                    ],
                    "floor": [
                    {
                        "entity_type": "structure",
                        "SUB_KEY_TYPE": "SEC_FLR",
                        "ACTIVE_STATUS": 1,
                        "CML_TITLE": "Whole Home",
                        "CML_SUB_TYPE": "DEFAULT FLOOR",
                        "FLOOR_ID": "",
                        "KEY_TYPE": "SEC",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300#SEC_WIZ_LYT_0057#TSK_LST_FLR_1659590634328_14",
                        "CML_TYPE": "floor",
                        "SYNC_PENDING_STATUS": 0,
                        "ROOM_ID": "0",
                        "CREATED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "CREATED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com"
                    }
                    ],
                    "room": [
                    {
                        "entity_type": "structure",
                        "SUB_KEY_TYPE": "SEC_ROM",
                        "ACTIVE_STATUS": 1,
                        "CML_TITLE": "Whole Home DEFAULT ROOM",
                        "CML_SUB_TYPE": "DEFAULT ROOM",
                        "FLOOR_ID": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300#SEC_WIZ_LYT_0057#TSK_LST_FLR_1659590634328_14",
                        "KEY_TYPE": "SEC",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300#SEC_FLR_1659590634331_75#TSK_PRO_ROM_ORG_1659590634331_98",
                        "CML_TYPE": "room",
                        "SYNC_PENDING_STATUS": 0,
                        "CREATED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "CREATED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com"
                    }
                    ],
                    "scene": [],
                    "user": [
                    {
                        "RECOVERY_MAIL": "admin@cloudsmaintenance.clouzer.com",
                        "LKEY_VAL": "",
                        "ACTION": "",
                        "hubId": "ClouzerSoulTest-37",
                        "RegisterWith": "cloudsmaintenance.clouzer",
                        "firstName": "clouzer",
                        "lastName": "user",
                        "rPassword": "",
                        "username": "admin@clouzer.com",
                        "ACTIVE_STATUS": 1,
                        "USM_IMAGE_PATH": "",
                        "KEY_VAL": "tempKeyVal",
                        "CML_HIDDEN": 1
                    },
                    {
                        "RECOVERY_MAIL": "kavita.pansare@clouzer.com",
                        "LKEY_VAL": "",
                        "ACTION": "",
                        "hubId": "ClouzerSoulTest-37",
                        "RegisterWith": "clouzer",
                        "firstName": "Kavita",
                        "lastName": "Pansare",
                        "rPassword": "",
                        "username": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "ACTIVE_STATUS": 1,
                        "USM_IMAGE_PATH": "",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002"
                    }
                    ]
                }
                ],
                "requestId": "/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "userId": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                "connectionProtocol": "MQTT",
                "connectionId": "/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "clientId": "CLOUDS",
                "CallerInfo": {
                "source": [
                    "soulHub"
                ],
                "caller": "soulhubACtion"
                }
            },
            "type": "initial_sync"
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "node/sync"

    Response Object:

        {
            "data": {
                "requestId": "/sync#/sync#RfylTihmfl_HrowdAC-Pkavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#1659593541192r18r28",
                "userId": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                "clientId": "CLOUDS",
                "dataArray": [
                {
                    "role": [
                    {
                        "ROLE_NAME": "Admin",
                        "ROLE": 165959355961640,
                        "entity_type": "role",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID1659593559290575436622510"
                    }
                    ],
                    "role_map": [
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 54,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID16595935605069",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 22,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356021642",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 32,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356161853",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 21,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356183237",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 1,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356264467",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 100,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID16595935633812",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 23,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356395264",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 33,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356463949",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 11,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356557178",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 41,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID16595935652235",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 31,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356610583",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 52,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356759641",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 53,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356726166",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 51,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356823564",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 43,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356924055",
                        "entity_type": "role_map"
                    },
                    {
                        "ROLE": 165959355961640,
                        "RULE_ID": 42,
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "ID": "ID165959356978137",
                        "entity_type": "role_map"
                    }
                    ],
                    "user": [
                    {
                        "RECOVERY_MAIL": "admin@cloudsmaintenance.clouzer.com",
                        "LKEY_VAL": "admin@cloudsmaintenance.clouzer.com",
                        "ACTION": "",
                        "hubId": "ClouzerSoulTest-37",
                        "RegisterWith": "cloudsmaintenance.clouzer",
                        "firstName": "clouzer",
                        "lastName": "user",
                        "username": "admin@clouzer.com",
                        "ACTIVE_STATUS": 1,
                        "USM_IMAGE_PATH": "",
                        "KEY_VAL": "tempKeyVal",
                        "CML_HIDDEN": 1,
                        "entity_type": "userlist",
                        "userId": "ID1659593577286813952816972",
                        "JWTTOKEN": "",
                        "logintype": "user",
                        "ROLE": 1
                    },
                    {
                        "RECOVERY_MAIL": "kavita.pansare@clouzer.com",
                        "LKEY_VAL": "kavita.pansare@clouzer.com",
                        "ACTION": "",
                        "hubId": "ClouzerSoulTest-37",
                        "RegisterWith": "clouzer",
                        "firstName": "Kavita",
                        "lastName": "Pansare",
                        "username": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "ACTIVE_STATUS": 1,
                        "USM_IMAGE_PATH": "",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_DEPT_ORG_1231231231231_1234#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002",
                        "entity_type": "userlist",
                        "userId": "ID1659593577581519588616509",
                        "JWTTOKEN": "",
                        "logintype": "user",
                        "ROLE": 165959355961640,
                        "CML_HIDDEN": 0
                    }
                    ],
                    "location": [
                    {
                        "LOCATION_ID": "ID1659592983686723708084757",
                        "LKEY_VAL": "",
                        "CML_ZIPCODE": "411011",
                        "CML_CONTINENT": "Asia",
                        "CML_LOCATION": "Kothrud Police Station, Paud Road, Near Wanaj Company, Navbhumi, Shastri Nagar, Kothrud, Pune, Maharashtra, India",
                        "ADDRESS_LINE2": "NA",
                        "CML_CITY": "Pune",
                        "CML_STATE": "Maharashtra",
                        "CML_TIMEZONE": "Asia/Calcutta",
                        "CML_COUNTRY": "India",
                        "CML_COUNTRY_CODE": "IN",
                        "CML_LATITUDE": "18.50658499999999",
                        "CML_LONGITUDE": "73.8024811",
                        "entity_type": "location"
                    }
                    ],
                    "property": [
                    {
                        "PROPERTY_ID": "ID1659592983273563217913571",
                        "LKEY_VAL": "",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300",
                        "CML_TYPE": "property",
                        "TARGET": "/ID1659592983273563217913571",
                        "SYNC_PENDING_STATUS": 0,
                        "CML_TITLE": "SQ",
                        "KEY_TYPE": "PRJ",
                        "SUB_KEY_TYPE": "PRJ_PRO",
                        "CREATED_BY_ON_CLOUZER_SOUL": "",
                        "CREATED_ON_ON_CLOUZER_SOUL": 1659592983,
                        "LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1659593555127,
                        "CREATED_BY": "",
                        "CREATED_ON": "",
                        "LAST_MODIFIED_BY": "",
                        "LAST_MODIFIED_ON": "",
                        "ACTIVE_STATUS": 1,
                        "CML_RETROFIT": "",
                        "LOCATION_ID": "ID1659592983686723708084757",
                        "entity_type": "property",
                        "PROPERTY_TYPE": "",
                        "CML_IMAGE_PATH": [
                        "/hdfs/kavita.pansare@clouzer.com/Cloud Vault/Media/Upload/2022/Aug/1659590565111_4931_Imgclz7705.jpeg?op=OPEN"
                        ]
                    }
                    ],
                    "floor": [
                    {
                        "entity_type": "structure",
                        "SUB_KEY_TYPE": "SEC_FLR",
                        "ACTIVE_STATUS": 1,
                        "CML_TITLE": "Whole Home",
                        "CML_SUB_TYPE": "DEFAULT FLOOR",
                        "FLOOR_ID": "ID1659593579615585531949544",
                        "KEY_TYPE": "SEC",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300#SEC_WIZ_LYT_0057#TSK_LST_FLR_1659590634328_14",
                        "CML_TYPE": "floor",
                        "SYNC_PENDING_STATUS": 0,
                        "ROOM_ID": "0",
                        "CREATED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "CREATED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "STRUCTURE_ID": "-2",
                        "LKEY_VAL": "-2",
                        "TARGET": "/ID1659592983273563217913571/-2",
                        "PROPERTY_ID": "ID1659592983273563217913571",
                        "GROUP_ID": "-1",
                        "CREATED_BY": "",
                        "CREATED_ON": "",
                        "LAST_MODIFIED_BY": "",
                        "LAST_MODIFIED_ON": "",
                        "PROJECT_ID": "",
                        "CREDENTIAL_ID": "",
                        "INTERFACE_ID": ""
                    }
                    ],
                    "room": [
                    {
                        "entity_type": "structure",
                        "SUB_KEY_TYPE": "SEC_ROM",
                        "ACTIVE_STATUS": 1,
                        "CML_TITLE": "Whole Home DEFAULT ROOM",
                        "CML_SUB_TYPE": "DEFAULT ROOM",
                        "FLOOR_ID": "ID1659593579615585531949544",
                        "KEY_TYPE": "SEC",
                        "KEY_VAL": "bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com#PRJ_ORG_WKS_1659590626945_6300#SEC_FLR_1659590634331_75#TSK_PRO_ROM_ORG_1659590634331_98",
                        "CML_TYPE": "room",
                        "SYNC_PENDING_STATUS": 0,
                        "CREATED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "LAST_MODIFIED_ON_ON_CLOUZER_SOUL": 1659593555129,
                        "CREATED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "LAST_MODIFIED_BY_ON_CLOUZER_SOUL": "kavita.pansare@bgfjfjagcfdgbhigj.cloudsbuilder.clouzer.com",
                        "STRUCTURE_ID": "ID1659593579894914442366786",
                        "LKEY_VAL": "ID1659593579894914442366786",
                        "TARGET": "/ID1659592983273563217913571/-2/ID1659593579894914442366786",
                        "PROPERTY_ID": "ID1659592983273563217913571",
                        "ROOM_ID": "ID165959357916970727824730",
                        "GROUP_ID": "-1",
                        "CREATED_BY": "",
                        "CREATED_ON": "",
                        "LAST_MODIFIED_BY": "",
                        "LAST_MODIFIED_ON": "",
                        "PROJECT_ID": "",
                        "CREDENTIAL_ID": "",
                        "INTERFACE_ID": ""
                    }
                    ],
                    "scene": []
                }
                ]
            },
            "type": "initial_sync_hub",
            "CallerInfo": {
                "source": [
                "soulHub",
                "soulPy"
                ],
                "caller": "soulhubACtion"
            }
        }

14)Checking soulPy process status

    Discription: SoulHub checks python process is running or not.

    Direction: SoulHub ----> ProcessMonitor

    Process: "soulPy"

    Request Topic: "process/status/get"

    Response Topic: "process/status/get_res"

15)Change SoulHub mode

    Description: INITIAL_SYNC_DONE mode started.

    Direction: SoulHub ----> soulPy

    SoulHub Mode: "INITIAL_SYNC_DONE"

    Status: 14

    Request Topic: "soulHub/mode"

    Request Object:

        {
            "communicationId": "1659593580257changeMode39",
            "data": {
                "listener": "soulPy",
                "mode": "14"
            },
            "CallerInfo": {}
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulHub/ack/mode"

    Response Object:

        {
            "communicationId": "1659593580257changeMode39",
            "data": {
                "listener": "soulPy",
                "mode": "14"
            },
            "CallerInfo": {},
            "error": false
        }

16)SoulHub updates mode in database

    Description: after setting process mode as "INITIAL_SYNC_DONE" SoulHub updates mode in database

    Direction: Soulhub ----> soulPy

    Table: "hubInfo"

    Request Topic: "soulDb/update"

    Request Object:

        {
            "data": {
                "entity_type": "hubInfo",
                "set": {
                "CML_HUB_MODE": "INITIAL_SYNC_DONE",
                "CML_CONFIG_START_TIME": "1659593580318",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_DONE"
                }
            },
            "communicationId": "1659593580318updateModeInDB69",
            "CallerInfo": {}
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

        {
            "data": [
                {
                "CML_HUBSERIAL_ID": "ClouzerSoulTest-37",
                "CML_HUBAUTH_ID": "eLGCqZIgxXAX",
                "LKEY_VAL": "ClouzerSoulTest-37",
                "KEY_VAL": "ClouzerSoulTest-37",
                "SYNC_PENDING_STATUS": -1,
                "ACTIVE_STATUS": 1,
                "KEY_TYPE": "TSK",
                "SUB_KEY_TYPE": "IOE",
                "CML_FIRMWARE_MODULE": "0.0.0-alpha.3",
                "CML_FIRMWARE_DEPENDANCY": "0.0.0-alpha.3",
                "CML_FIRMWARE_SOUND": "0.0.0-alpha.9",
                "CML_FIRMWARE_HUB": "NA",
                "CML_FIRMWARE_PORTAL": "0.0.0-alpha.17",
                "CML_FIRMWARE_SOUL_SYSTEM": "NA",
                "CML_MANUFACTURER": "Clouds Inc.",
                "CML_FAMILY_NAME": "NA",
                "CML_HUB_SUBSCRIPTION": "Basic",
                "CML_AQI_CALCULATION_FLAG": "false",
                "CML_HUB_GENERATION": "V2",
                "CML_ACT_ROLE": "",
                "LOCATION_ID": "ID1659592983686723708084757",
                "PROPERTY_ID": "ID1659592983273563217913571",
                "CML_HUB_MODE": "INITIAL_SYNC_DONE",
                "CML_CONFIG_COUNT": -1,
                "CML_CONFIG_START_TIME": "1659593580318",
                "CML_CONFIG_END_TIME": "",
                "entity_type": "hubInfo",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_DONE",
                "ALLOW_PACKAGE_VALIDATION": 1
                }
            ],
            "type": "dbUpdate",
            "communicationId": "1659593580318updateModeInDB69",
            "CallerInfo": {}
        }

17)Change SoulHub mode

    Description: CONFIG_START mode started.

    Direction: SoulHub ----> soulPy

    SoulHub Mode: "CONFIG_START"

    Status: 10

    Request Topic: "soulHub/mode"

    Request Object:

        {
            "communicationId": "1659593581789changeMode192",
            "data": {
                "listener": "soulPy",
                "mode": "10"
            },
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy"
                ]
            }
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulHub/ack/mode"

    Response Object:

        {
            "communicationId": "1659593581789changeMode192",
            "data": {
                "listener": "soulPy",
                "mode": "10"
            },
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy",
                "soulPy"
                ]
            },
            "error": false
        }

18)SoulHub updates mode in database

    Description: after setting process mode as "CONFIG_START" SoulHub updates mode in database

    Direction: Soulhub ----> soulPy

    Table: "hubInfo"

    Request Topic: "soulDb/update"

    Request Object:

        {
            "data": {
                "entity_type": "hubInfo",
                "set": {
                "CML_HUB_MODE": "CONFIG_START",
                "CML_CONFIG_START_TIME": "1659593581866"
                }
            },
            "communicationId": "1659593581869updateModeInDB118",
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy",
                "soulPy"
                ]
            }
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

    Response Object:

        {
            "data": [
                {
                "CML_HUBSERIAL_ID": "ClouzerSoulTest-37",
                "CML_HUBAUTH_ID": "eLGCqZIgxXAX",
                "LKEY_VAL": "ClouzerSoulTest-37",
                "KEY_VAL": "ClouzerSoulTest-37",
                "SYNC_PENDING_STATUS": -1,
                "ACTIVE_STATUS": 1,
                "KEY_TYPE": "TSK",
                "SUB_KEY_TYPE": "IOE",
                "CML_FIRMWARE_MODULE": "0.0.0-alpha.3",
                "CML_FIRMWARE_DEPENDANCY": "0.0.0-alpha.3",
                "CML_FIRMWARE_SOUND": "0.0.0-alpha.9",
                "CML_FIRMWARE_HUB": "NA",
                "CML_FIRMWARE_PORTAL": "0.0.0-alpha.17",
                "CML_FIRMWARE_SOUL_SYSTEM": "NA",
                "CML_MANUFACTURER": "Clouds Inc.",
                "CML_FAMILY_NAME": "NA",
                "CML_HUB_SUBSCRIPTION": "Basic",
                "CML_AQI_CALCULATION_FLAG": "false",
                "CML_HUB_GENERATION": "V2",
                "CML_ACT_ROLE": "",
                "LOCATION_ID": "ID1659592983686723708084757",
                "PROPERTY_ID": "ID1659592983273563217913571",
                "CML_HUB_MODE": "CONFIG_START",
                "CML_CONFIG_COUNT": -1,
                "CML_CONFIG_START_TIME": "1659593581866",
                "CML_CONFIG_END_TIME": "",
                "entity_type": "hubInfo",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_DONE",
                "ALLOW_PACKAGE_VALIDATION": 1
                }
            ],
            "type": "dbUpdate",
            "communicationId": "1659593581869updateModeInDB118",
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy",
                "soulPy",
                "soulPy"
                ]
            }
        }

19)Change SoulHub mode

    Description: CONFIG mode started.

    Direction: SoulHub ----> soulPy

    SoulHub Mode: "CONFIG"

    Status: 4

    Request Topic: "soulHub/mode"

    Request Object:

        {
            "communicationId": "1659593581888changeMode217",
            "data": {
                "listener": "soulPy",
                "mode": "04"
            },
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy"
                ]
            }
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulHub/ack/mode"

    Response Object:

        {
            "communicationId": "1659593581888changeMode217",
            "data": {
                "listener": "soulPy",
                "mode": "04"
            },
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy",
                "soulPy"
                ]
            },
            "error": false
        }

25)SoulHub updates mode in database

    Description: after setting process mode as "CONFIG" SoulHub updates mode in database

    Direction: Soulhub ----> soulPy

    Table: "hubInfo"

    Request Topic: "soulDb/update"

    Request Object:

        {
            "data": {
                "entity_type": "hubInfo",
                "set": {
                "CML_HUB_MODE": "CONFIG",
                "CML_CONFIG_END_TIME": "1659593581965"
                }
            },
            "communicationId": "1659593581966updateModeInDB6",
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy",
                "soulPy"
                ]
            }
        }

    Response Direction: soulPy ----> soulHub

    Response Topic: "soulDb/Response"

    Response Object:

        {
            "data": [
                {
                "CML_HUBSERIAL_ID": "ClouzerSoulTest-37",
                "CML_HUBAUTH_ID": "eLGCqZIgxXAX",
                "LKEY_VAL": "ClouzerSoulTest-37",
                "KEY_VAL": "ClouzerSoulTest-37",
                "SYNC_PENDING_STATUS": -1,
                "ACTIVE_STATUS": 1,
                "KEY_TYPE": "TSK",
                "SUB_KEY_TYPE": "IOE",
                "CML_FIRMWARE_MODULE": "0.0.0-alpha.3",
                "CML_FIRMWARE_DEPENDANCY": "0.0.0-alpha.3",
                "CML_FIRMWARE_SOUND": "0.0.0-alpha.9",
                "CML_FIRMWARE_HUB": "NA",
                "CML_FIRMWARE_PORTAL": "0.0.0-alpha.17",
                "CML_FIRMWARE_SOUL_SYSTEM": "NA",
                "CML_MANUFACTURER": "Clouds Inc.",
                "CML_FAMILY_NAME": "NA",
                "CML_HUB_SUBSCRIPTION": "Basic",
                "CML_AQI_CALCULATION_FLAG": "false",
                "CML_HUB_GENERATION": "V2",
                "CML_ACT_ROLE": "",
                "LOCATION_ID": "ID1659592983686723708084757",
                "PROPERTY_ID": "ID1659592983273563217913571",
                "CML_HUB_MODE": "CONFIG",
                "CML_CONFIG_COUNT": -1,
                "CML_CONFIG_START_TIME": "1659593581866",
                "CML_CONFIG_END_TIME": "1659593581965",
                "entity_type": "hubInfo",
                "CML_PREV_HUB_MODE": "INITIAL_SYNC_DONE",
                "ALLOW_PACKAGE_VALIDATION": 1
                }
            ],
            "type": "dbUpdate",
            "communicationId": "1659593581966updateModeInDB6",
            "CallerInfo": {
                "portalAction": false,
                "caller": "soulhubACtion",
                "source": [
                "soulHub",
                "soulPy",
                "soulPy",
                "soulPy",
                "soulPy"
                ]
            }
        }

Sequence Diagram

test