{
  "title": "ThingsBoard IoT Gateways",
  "image": "tb-image;/api/images/system/gateway-dashboard.png",
  "mobileHide": false,
  "mobileOrder": 6,
  "configuration": {
    "description": "",
    "widgets": {
      "23b9adc5-b3bd-040f-e5eb-a45925c73257": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Gateway list",
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableStickyHeader": true,
            "enableStickyAction": false,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Gateway list",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 600,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "9b7a1caa-3510-3daa-e05a-fc39b851d2c1",
              "filterId": "abdfdcf9-75d4-001d-783a-920cb8e2a7e1",
              "dataKeys": [
                {
                  "name": "createdTime",
                  "type": "entityField",
                  "label": "Created time",
                  "color": "#2196f3",
                  "settings": {
                    "columnWidth": "140px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": false,
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.4570900758216545,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Gateway name",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "20%",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": false,
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.45934623767875316,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#f44336",
                  "settings": {
                    "columnWidth": "20%",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "var newValue = value == 'true' ? \"Active\" : \"Inactive\";\r\nvar bgColor = value == 'true' ? 'rgba(25,128,56, .06)': 'rgba(203,37,48, .06)',\r\ncolor = value == 'true' ? 'rgb(25,128,56)': 'rgb(203,37,48)';\r\nreturn `<div style=\"text-align: center;\r\n    border-radius: 16px;\r\n    font-weight: 500;\r\n    color: ${color};\r\n    background: ${bgColor};\r\n    width: fit-content;\r\n    padding: 5px 15px;\">${newValue}</div>`",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.7189327146035449,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": false,
                  "postFuncBody": ""
                },
                {
                  "name": "active_connectors",
                  "type": "attribute",
                  "label": "Enabled Connectors",
                  "color": "#3f51b5",
                  "settings": {
                    "columnWidth": "20%",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "return value?JSON.parse(value).length:0;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.3929515708982403,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "Version",
                  "type": "attribute",
                  "label": "Version",
                  "color": "#8bc34a",
                  "settings": {
                    "columnWidth": "40%",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": false,
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.4705163811361781,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ]
            }
          ],
          "actions": {
            "actionCellButton": [
              {
                "name": "Launch command",
                "icon": "terminal",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<div class=\"container\">\n    <mat-toolbar class=\"flex flex-row items-center\" color=\"primary\">\n        <h2>{{ 'gateway.launch-command' | translate }}</h2>\n        <span class=\"flex-1\"></span>\n        <div [tb-help]=\"'gatewayInstall'\"></div>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <tb-gateway-command [deviceId]=\"entityId\"></tb-gateway-command>\n    <div mat-dialog-actions class=\"flex flex-row justify-end items-center\">\n        <button mat-button color=\"primary\" type=\"button\" (click)=\"cancel()\" cdkFocusInitial>\n            {{ 'action.close' | translate }}\n        </button>\n    </div>\n</div>\n",
                "customCss": ".container {\n    display: grid;\n    grid-template-rows: min-content minmax(auto, 1fr) min-content;\n    height: 100%;\n    max-height: 100vh;\n    width: 600px;\n    max-width: 100%;\n}",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\n\nopenCommands();\n\nfunction openCommands() {\n    customDialog.customDialog(htmlTemplate, CommandsDialogController, {panelClass: \"test\"}).subscribe();\n}\n\nfunction CommandsDialogController(instance) {\n    let vm = instance;\n    \n    vm.entityId = entityId.id;\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n}\n",
                "customResources": [
                  {
                    "url": "tb-resource;/api/resource/js_module/system/gateway-management-extension.js",
                    "isModule": true
                  }
                ],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "ae2e5995-505f-a241-5fb2-6cbaf08b1b55"
              },
              {
                "name": "General configuration",
                "icon": "settings",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n</mat-progress-bar>\n<tb-gateway-configuration\n    class=\"gateway-config\"\n    mat-dialog-content\n    [device]=\"device\"\n    [dialogRef]=\"dialogRef\">\n</tb-gateway-configuration>",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\n\nopenAddEntityDialog();\n\nfunction openAddEntityDialog() {\n    customDialog.customDialog(htmlTemplate, AddEntityDialogController).subscribe();\n}\n\nfunction AddEntityDialogController(instance) {\n    let vm = instance;\n    \n    vm.device = additionalParams.entity.id;\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n}\n",
                "customResources": [
                  {
                    "url": "tb-resource;/api/resource/js_module/system/gateway-management-extension.js",
                    "isModule": true
                  }
                ],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "a54acd30-5c5f-d709-b892-5fc14f780e34"
              },
              {
                "name": "Connectors",
                "icon": "private_connectivity",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "connectors",
                "setEntityId": true,
                "stateEntityParamName": "",
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "e27eea56-c57c-0a45-eb1d-f48f19e5356b"
              },
              {
                "name": "Delete gateway",
                "icon": "delete",
                "useShowWidgetActionFunction": false,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const { $scope, servicesMap } = widgetContext;\nconst $injector = $scope.$injector;\nconst dialogs = $injector.get(servicesMap.get('dialogs'));\nconst deviceService = $injector.get(servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n  const title = `Are you sure you want to delete the gateway device '${entityName}'?`;\n  const content = 'Be careful, after the confirmation, the device and all related data will become unrecoverable!';\n  \n  dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(result => {\n    if (result) {\n      deleteDevice();\n    }\n  });\n}\n\nfunction deleteDevice() {\n  deviceService.deleteDevice(entityId.id).subscribe(() => {\n    widgetContext.updateAliases();\n  });\n}",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "0ec170eb-de35-cab1-99a1-a922eb42cdf0"
              }
            ],
            "rowClick": [
              {
                "name": "Show geteway details",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "gateway_details",
                "setEntityId": true,
                "stateEntityParamName": "",
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "40cd37f1-6d1c-38a4-aba5-7dc408376647"
              }
            ],
            "headerButton": [
              {
                "name": "Add Gateway",
                "buttonType": "icon",
                "icon": "add",
                "buttonColor": "rgba(0, 0, 0, 0.87)",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #addEntityForm=\"ngForm\" [formGroup]=\"addEntityFormGroup\"\r\n      (ngSubmit)=\"save($event)\" class=\"add-entity-form\">\r\n    <mat-toolbar class=\"flex flex-row items-center\" color=\"primary\">\r\n        <h2>Add gateway</h2>\r\n        <span class=\"flex-1\"></span>\r\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\r\n            <mat-icon class=\"material-icons\">close</mat-icon>\r\n        </button>\r\n    </mat-toolbar>\r\n    <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\r\n    </mat-progress-bar>\r\n    <div class=\"h-1\" *ngIf=\"!(isLoading$ | async)\"></div>\r\n    <div mat-dialog-content class=\"flex flex-col\">\r\n        <div class=\"flex flex-row gap-2 flex-wrap\" >\r\n            <mat-form-field class=\"w-full sm:w-auto\">\r\n                <mat-label>Name</mat-label>\r\n                <input matInput formControlName=\"entityName\" required>\r\n                <mat-error *ngIf=\"addEntityFormGroup.get('entityName').hasError('required') || addEntityFormGroup.get('entityName').hasError('pattern')\">\r\n                    Gateway name is required.\r\n                </mat-error>\r\n            </mat-form-field>\r\n        </div>\r\n        <div class=\"flex flex-row gap-2 flex-wrap\">\r\n            <tb-entity-subtype-autocomplete\r\n                    class=\"w-full sm:w-auto\"\r\n                    formControlName=\"type\"\r\n                    [required]=\"true\"\r\n                    [entityType]=\"'DEVICE'\"\r\n            ></tb-entity-subtype-autocomplete>\r\n        </div>\r\n    </div>\r\n    <div mat-dialog-actions class=\"flex flex-row justify-end items-center\">\r\n        <button mat-button color=\"primary\"\r\n                type=\"button\"\r\n                [disabled]=\"(isLoading$ | async)\"\r\n                (click)=\"cancel()\" cdkFocusInitial>\r\n            Cancel\r\n        </button>\r\n        <button mat-button mat-raised-button color=\"primary\"\r\n                type=\"submit\"\r\n                [disabled]=\"(isLoading$ | async) || addEntityForm.invalid || !addEntityForm.dirty\">\r\n            Create\r\n        </button>\r\n    </div>\r\n</form>\r\n",
                "customCss": ".add-entity-form {\r\n    min-width: 400px !important;\r\n}\r\n\r\n.add-entity-form .boolean-value-input {\r\n    padding-left: 5px;\r\n}\r\n\r\n.add-entity-form .boolean-value-input .checkbox-label {\r\n    margin-bottom: 8px;\r\n    color: rgba(0,0,0,0.54);\r\n    font-size: 12px;\r\n}\r\n\r\n.relations-list .header {\r\n    padding-right: 5px;\r\n    padding-bottom: 5px;\r\n    padding-left: 5px;\r\n}\r\n\r\n.relations-list .header .cell {\r\n    padding-right: 5px;\r\n    padding-left: 5px;\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n    color: rgba(0, 0, 0, .54);\r\n    white-space: nowrap;\r\n}\r\n\r\n.relations-list .mat-form-field-infix {\r\n    width: auto !important;\r\n}\r\n\r\n.relations-list .body {\r\n    padding-right: 5px;\r\n    padding-bottom: 15px;\r\n    padding-left: 5px;\r\n}\r\n\r\n.relations-list .body .row {\r\n    padding-top: 5px;\r\n}\r\n\r\n.relations-list .body .cell {\r\n    padding-right: 5px;\r\n    padding-left: 5px;\r\n}\r\n\r\n.relations-list .body .md-button {\r\n    margin: 0;\r\n}\r\n\r\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\r\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\r\nlet assetService = $injector.get(widgetContext.servicesMap.get('assetService'));\r\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\r\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\r\nlet entityRelationService = $injector.get(widgetContext.servicesMap.get('entityRelationService'));\r\nlet userSettingsService = $injector.get(widgetContext.servicesMap.get('userSettingsService'));\r\n\r\nopenAddEntityDialog();\r\n\r\nfunction openAddEntityDialog() {\r\n    customDialog.customDialog(htmlTemplate, AddEntityDialogController).subscribe();\r\n}\r\n\r\nfunction AddEntityDialogController(instance) {\r\n    let vm = instance;\r\n    let userSettings;\r\n    userSettingsService.loadUserSettings().subscribe(settings=> {\r\n        userSettings = settings;\r\n        if (!userSettings.createdGatewaysCount) userSettings.createdGatewaysCount = 0;\r\n    });\r\n    \r\n\r\n    vm.addEntityFormGroup = vm.fb.group({\r\n     entityName: ['', [vm.validators.required, vm.validators.pattern(/.*\\S.*/)]],\r\n     entityType: ['DEVICE'],\r\n     entityLabel: [''],\r\n     type: ['', [vm.validators.required]],\r\n    });\r\n\r\n    vm.cancel = function() {\r\n        vm.dialogRef.close(null);\r\n    };\r\n\r\n\r\n    vm.save = function($event) {\r\n        vm.addEntityFormGroup.markAsPristine();\r\n        saveEntityObservable().subscribe(\r\n            function (device) {\r\n                widgetContext.updateAliases();\r\n                userSettingsService.putUserSettings({ createdGatewaysCount: ++userSettings.createdGatewaysCount }).subscribe(_=>{\r\n                });\r\n                vm.dialogRef.close(null);\r\n                openCommandDialog(device, $event);\r\n            }\r\n        );\r\n    };\r\n    \r\n    function openCommandDialog(device, $event) {\r\n        vm.device = device;\r\n        let openCommandAction = widgetContext.actionsApi.getActionDescriptors(\"actionCellButton\").find(action => action.name == \"Launch command\");\r\n        setTimeout(() => {\r\n            widgetContext.actionsApi.handleWidgetAction($event, openCommandAction, device.id, device.name, {newDevice: true});\r\n        });\r\n        goToConfigState();\r\n    }\r\n\r\n    \r\n    function goToConfigState() {\r\n        const stateParams = {};\r\n        stateParams.entityId = vm.device.id;\r\n        stateParams.entityName = vm.device.name;\r\n        const newStateParams = {\r\n            targetEntityParamName: 'default',\r\n            new_gateway: {\r\n                entityId: vm.device.id,\r\n                entityName: vm.device.name\r\n            }\r\n        }\r\n        const params = {...stateParams, ...newStateParams};\r\n        widgetContext.stateController.openState('gateway_details', params, false);\r\n    }\r\n\r\n    function saveEntityObservable() {\r\n        const formValues = vm.addEntityFormGroup.value;\r\n        let entity = {\r\n            name: formValues.entityName.trim(),\r\n            type: formValues.type,\r\n            label: formValues.entityLabel,\r\n            additionalInfo: {\r\n                gateway: true\r\n            }\r\n        };\r\n        return deviceService.saveDevice(entity);\r\n    }\r\n}\r\n",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "9aab301f-a305-520b-4842-b02ca92a5970"
              }
            ]
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": false,
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "configMode": "advanced",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "iconColor": null,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "23b9adc5-b3bd-040f-e5eb-a45925c73257",
        "typeFullFqn": "system.cards.entities_table"
      },
      "d4a1ffc4-c9f6-7b15-bca0-17feb58bac99": {
        "type": "latest",
        "sizeX": 9.5,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": []
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {},
          "title": "New Gateway configuration",
          "showTitleIcon": false,
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "enableDataExport": false,
          "widgetStyle": {},
          "widgetCss": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 500
          },
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showLegend": false,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "d4a1ffc4-c9f6-7b15-bca0-17feb58bac99",
        "typeFullFqn": "system.gateway_widgets.gateway_general_configuration"
      },
      "02a05113-d878-b086-328e-75bd6f02b2bb": {
        "type": "latest",
        "sizeX": 11,
        "sizeY": 8,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "activeConnectors",
                  "type": "attribute",
                  "label": "activeConnectors",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7454705362378311
                },
                {
                  "name": "lastConnectTime",
                  "type": "attribute",
                  "label": "lastConnectTime",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.7249585632235194
                },
                {
                  "name": "lastDisconnectTime",
                  "type": "attribute",
                  "label": "lastDisconnectTime",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.9812430092707332
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "active",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.9216097189544408
                }
              ]
            }
          ],
          "showTitle": false,
          "backgroundColor": "#FFFFFF01",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {},
          "title": "New Gateway connector",
          "showTitleIcon": false,
          "titleTooltip": "",
          "dropShadow": false,
          "enableFullscreen": false,
          "enableDataExport": false,
          "widgetStyle": {},
          "widgetCss": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 500
          },
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showLegend": false
        },
        "row": 0,
        "col": 0,
        "id": "02a05113-d878-b086-328e-75bd6f02b2bb",
        "typeFullFqn": "system.gateway_widgets.gateway_connectors"
      },
      "79f59106-758f-c428-8b93-4341faea705d": {
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.1375998537558516
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.9806146353493157
                },
                {
                  "name": "activeDevices",
                  "type": "attribute",
                  "label": "activeDevices",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09421132942226995
                },
                {
                  "name": "inactiveDevices",
                  "type": "attribute",
                  "label": "inactiveDevices",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.35218481621567044
                },
                {
                  "name": "active_connectors",
                  "type": "attribute",
                  "label": "active_connectors",
                  "color": "#3f51b5",
                  "settings": {},
                  "_hash": 0.45076316106117176
                },
                {
                  "name": "inactive_connectors",
                  "type": "attribute",
                  "label": "inactive_connectors",
                  "color": "#e91e63",
                  "settings": {},
                  "_hash": 0.36755550699981954
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#e91e63",
                  "settings": {},
                  "_hash": 0.10301612696488416,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": false,
                  "postFuncBody": null
                },
                {
                  "name": "ALL_ERRORS_COUNT",
                  "type": "timeseries",
                  "label": "ALL_ERRORS_COUNT",
                  "color": "#ffeb3b",
                  "settings": {},
                  "_hash": 0.2770587478725004
                },
                {
                  "name": "Version",
                  "type": "attribute",
                  "label": "Version",
                  "color": "#03a9f4",
                  "settings": {},
                  "_hash": 0.007837366355011532
                },
                {
                  "name": "lastConnectTime",
                  "type": "attribute",
                  "label": "lastConnectTime",
                  "color": "#ff9800",
                  "settings": {}
                },
                {
                  "name": "lastDisconnectTime",
                  "type": "attribute",
                  "label": "lastDisconnectTime",
                  "color": "#673ab7",
                  "settings": {}
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            },
            {
              "type": "entityCount",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "bd33a006-fd40-3efc-7863-505c6e64f2b8",
              "dataKeys": [
                {
                  "name": "count",
                  "type": "count",
                  "label": "count",
                  "color": "#3f51b5",
                  "settings": {},
                  "_hash": 0.6470244865405319
                }
              ]
            },
            {
              "type": "entityCount",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "956cf341-7cdf-82a7-ea2a-50cc9586f1f1",
              "dataKeys": [
                {
                  "name": "count",
                  "type": "count",
                  "label": "count 2",
                  "color": "#e91e63",
                  "settings": {},
                  "_hash": 0.46058668157030436
                }
              ]
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "useMarkdownTextFunction": true,
            "markdownTextPattern": "# Markdown/HTML card \\n - **Current entity**: **${entityName}**. \\n - **Current value**: **${Random}**.",
            "markdownTextFunction": "var blockData = '';\n\nfunction createDataBlock(value, label, dividerStyle, mobile, id) {\n    blockData += `\n        <mat-card style=\"flex-grow: 1; width: ${mobile ? '100%' : 'auto'}; min-height: ${mobile ? 'auto' : '57px'}\" class=\"${dividerStyle}\">\n            <div class=\"divider\"></div>\n            <mat-divider vertical style=\"height:100%\"></mat-divider>\n            ${id ? `<mat-card-header class='tb-home-widget-link' id=\"${id}\">` : `<mat-card-header>`}\n                <mat-card-subtitle>${label}</mat-card-subtitle>\n            </mat-card-header>\n            <mat-card-content> ${ctx.sanitizer.sanitize(1, value)}</mat-card-content>\n        </mat-card>`;\n}\nconst lastConnectTime = Number(data[0].lastConnectTime);\nconst lastDisconnectTime = Number(data[0].lastDisconnectTime);\nconst isActive =\n  data[0].Status === 'true' &&\n  (!lastDisconnectTime || lastConnectTime > lastDisconnectTime);\ncreateDataBlock(isActive ? \"{{'gateway.active' | translate }}\" : \"{{'gateway.inactive' | translate}}\", \"{{ 'gateway.status-widget.status' | translate }}\", isActive ? \"divider-green\" : \"divider-red\");\ncreateDataBlock(data[0].Name, \"{{ 'gateway.status-widget.gateway-name' | translate }}\", '', ctx.isMobile);\n\nif (data[0].Version) {\n    createDataBlock(data[0].Version, \"{{ 'gateway.status-widget.gateway-version' | translate }}\", '');\n}\n\ncreateDataBlock(data[0].Type, \"{{ 'gateway.status-widget.gateway-type' | translate }}\", '');\n\ncreateDataBlock(\n    `<span style=\"color:rgb(25,128,56)\">${(data[1] ? data[1].count : 0)} </span>`\n    + \" | \" +\n    `<span style=\"color:rgb(203,37,48)\">${(data[2] ? data[2][\"count 2\"] : 0)} </span>`\n    , \"{{ 'gateway.status-widget.devices' | translate }} <span class='tb-hint' style='padding-left: 0'>{{ 'gateway.status-widget.active-inactive' | translate }}</span>\", '');\n    \ncreateDataBlock(\n    `<span style=\"color:rgb(25,128,56)\">${(data[0].active_connectors ? JSON.parse(data[0].active_connectors).length : 0)} </span>`\n    + \" | \" +\n    `<span style=\"color:rgb(203,37,48)\">${(data[0].inactive_connectors ? JSON.parse(data[0].inactive_connectors).length : 0)} </span>`\n    , \"{{ 'gateway.status-widget.connectors' | translate }} <span class='tb-hint' style='padding-left: 0'>{{ 'gateway.status-widget.enabled-disabled' | translate }}</span>\", '', '', 'connectors');\n    \ncreateDataBlock(data[0].ALL_ERRORS_COUNT || 0, \"{{ 'gateway.status-widget.errors' | translate }}\", (data[0].ALL_ERRORS_COUNT || 0) === 0 ? 'divider-green' : 'divider-red', '', 'logs');\n\nreturn `<div class=\"flex flex-row flex-wrap gap-2 cards-container\">${blockData}</div>`;",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".divider {\n    position: absolute;\n    width: 3px;\n    top: 8px;\n    border-radius: 2px;\n    bottom: 8px;\n    border: 1px solid rgba(31, 70, 144, 1);\n    background-color: rgba(31, 70, 144, 1);\n    left: 10px;\n}\n.divider-green .divider {\n    border: 1px solid rgb(25,128,56);\n    background-color: rgb(25,128,56);\n}\n\n.divider-green .mat-mdc-card-content {\n    color: rgb(25,128,56);\n}\n\n.divider-red .divider {\n    border: 1px solid rgb(203,37,48);\n    background-color: rgb(203,37,48);\n}\n\n.divider-red .mat-mdc-card-content {\n    color: rgb(203,37,48);\n}\n\n.mdc-card {\n    position: relative;\n    padding-left: 10px;\n    margin-bottom: 1px;\n}\n\n.mat-mdc-card-subtitle {\n    font-weight: 400;\n    font-size: 12px;\n}\n\n.mat-mdc-card-header {\n    padding: 8px 16px 0;\n}\n\n.mat-mdc-card-content:last-child {\n    padding-bottom: 8px;\n    font-size: 16px;\n}\n\n.cards-container {\n    height: calc(100% - 1px);\n    justify-content: stretch;\n    align-items: center;\n    margin-bottom: 1px;\n}\n\n::ng-deep.tb-home-widget-link > div {\n    flex-grow: 1;\n}\n\n.tb-home-widget-link {\n    cursor: pointer;\n    width: 100%;\n}\n\n.tb-home-widget-link:hover::after{\n    color: inherit;\n}\n \n.tb-home-widget-link::after{\n    content: 'arrow_forward';\n    display: inline-block;\n    transform: rotate(315deg);\n    font-family: 'Material Icons';\n    font-weight: normal;\n    font-style: normal;\n    font-size: 18px;\n    color: rgba(0, 0, 0, 0.12);\n    vertical-align: bottom;\n    margin-left: 6px;\n}"
          },
          "title": "Connectors",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "margin": "0",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px",
          "actions": {
            "elementClick": [
              {
                "name": "connectors",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "connectors",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "ee7216d8-ad7a-20db-1abc-2531e221f24c"
              },
              {
                "name": "logs",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "logs",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "ceec0446-c25f-2b9b-b1b1-58ed751476ff"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "79f59106-758f-c428-8b93-4341faea705d",
        "typeFullFqn": "system.gateway_widgets.markdown_card"
      },
      "60dcf518-8fc3-3539-8ff8-ce94bda39f3a": {
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "hideInterval": false,
            "hideLastInterval": false,
            "hideQuickInterval": false,
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 2592000000,
              "quickInterval": "CURRENT_DAY",
              "interval": 1000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": true,
            "enableStickyHeader": true,
            "enableStickyAction": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": true,
            "allowClear": true,
            "allowAssign": true,
            "displayActivity": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false
          },
          "title": "Alarms",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": null,
            "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
            "filterId": null,
            "dataKeys": [
              {
                "name": "createdTime",
                "type": "alarm",
                "label": "Created time",
                "color": "#2196f3",
                "settings": {
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "cellContentFunction": ""
                },
                "_hash": 0.021092237451093787
              },
              {
                "name": "type",
                "type": "alarm",
                "label": "Type",
                "color": "#f44336",
                "settings": {
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "cellContentFunction": ""
                },
                "_hash": 0.7323586880398418
              },
              {
                "name": "severity",
                "type": "alarm",
                "label": "Severity",
                "color": "#ffc107",
                "settings": {
                  "useCellStyleFunction": false,
                  "useCellContentFunction": false
                },
                "_hash": 0.09927019860088193
              },
              {
                "name": "details",
                "type": "alarm",
                "label": "details",
                "color": "#9c27b0",
                "settings": {},
                "_hash": 0.10903701402251387
              },
              {
                "name": "status",
                "type": "alarm",
                "label": "Status",
                "color": "#607d8b",
                "settings": {},
                "_hash": 0.5260411335842929
              }
            ]
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "more_horiz",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": false,
          "actions": {},
          "datasources": [],
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "alarmFilterConfig": {
            "statusList": [],
            "severityList": [],
            "typeList": [],
            "searchPropagatedAlarms": false
          },
          "enableDataExport": false,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "60dcf518-8fc3-3539-8ff8-ce94bda39f3a",
        "typeFullFqn": "system.alarm_widgets.alarms_table"
      },
      "27e6b37c-085e-824d-fb13-69651a545ec1": {
        "type": "timeseries",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 43200000,
              "quickInterval": "CURRENT_DAY",
              "interval": 1000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 25000
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {},
          "title": "Logs",
          "showTitleIcon": false,
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "showLegend": false,
          "useDashboardTimewindow": false,
          "displayTimewindow": true,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "27e6b37c-085e-824d-fb13-69651a545ec1",
        "typeFullFqn": "system.gateway_widgets.gateway_logs"
      },
      "bcd04dbf-c82a-ca13-6e88-a74f32b4348a": {
        "type": "timeseries",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": []
            }
          ],
          "timewindow": {
            "hideInterval": false,
            "hideLastInterval": false,
            "hideQuickInterval": false,
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 43200000,
              "quickInterval": "CURRENT_DAY",
              "interval": 1000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 25000
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "isConnectorLog": true,
            "connectorLogState": "connector_logs"
          },
          "title": "${connectorName} logs",
          "showTitleIcon": false,
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "showLegend": false,
          "useDashboardTimewindow": false,
          "displayTimewindow": true,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "bcd04dbf-c82a-ca13-6e88-a74f32b4348a",
        "typeFullFqn": "system.gateway_widgets.gateway_logs"
      },
      "2a318e56-5c83-4f82-bf23-df72dd7e3edf": {
        "type": "rpc",
        "sizeX": 9.5,
        "sizeY": 5.5,
        "config": {
          "targetDeviceAliases": [],
          "showTitle": false,
          "backgroundColor": "#010101",
          "color": "rgba(255, 254, 254, 0.87)",
          "padding": "0px",
          "settings": {
            "parseGpioStatusFunction": "return body[pin] === true;",
            "gpioStatusChangeRequest": {
              "method": "setGpioStatus",
              "paramsBody": "{\n   \"pin\": \"{$pin}\",\n   \"enabled\": \"{$enabled}\"\n}"
            },
            "requestTimeout": 500,
            "switchPanelBackgroundColor": "#b71c1c",
            "gpioStatusRequest": {
              "method": "getGpioStatus",
              "paramsBody": "{}"
            },
            "gpioList": [
              {
                "pin": 1,
                "label": "GPIO 1",
                "row": 0,
                "col": 0,
                "_uniqueKey": 0
              },
              {
                "pin": 2,
                "label": "GPIO 2",
                "row": 0,
                "col": 1,
                "_uniqueKey": 1
              },
              {
                "pin": 3,
                "label": "GPIO 3",
                "row": 1,
                "col": 0,
                "_uniqueKey": 2
              }
            ]
          },
          "title": "RPC remote shell",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {
            "border-radius": "10px"
          },
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "actions": {},
          "datasources": [],
          "showTitleIcon": false,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8"
          }
        },
        "row": 0,
        "col": 0,
        "id": "2a318e56-5c83-4f82-bf23-df72dd7e3edf",
        "typeFullFqn": "system.control_widgets.rpc_remote_shell"
      },
      "da01e13f-c108-39fd-2a74-b40da088769a": {
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "SERVICE_LOGS",
                  "type": "timeseries",
                  "label": "{i18n:widgets.gateway.level}",
                  "color": "#4caf50",
                  "settings": {
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"DEBUG\":\r\n        cssClass = \"status status-debug\";\r\n        break;\r\n      case \"WARNING\":\r\n        cssClass = \"status status-warning\";\r\n        break;\r\n      case \"ERROR\":\r\n      case \"EXCEPTION\":\r\n        cssClass = \"status status-error\";\r\n        break;\r\n      case \"INFO\":\r\n      default:\r\n        cssClass = \"status status-info\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;"
                  },
                  "_hash": 0.6667576563240645,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "if (value.includes(\"RPC\")&&!value.includes(\"GRPC\")) {\n    let parsedValue = value.match(/\\|(\\w+)\\|/);\n    parsedValue = parsedValue ? parsedValue[1] :\n    parsedValue;\n    return parsedValue || value;\n} else return '';"
                },
                {
                  "name": "SERVICE_LOGS",
                  "type": "timeseries",
                  "label": "{i18n:widgets.gateway.message}",
                  "color": "#2196f3",
                  "settings": {
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let statusValue = value.match(/\\|(\\w+)\\|/); \r\nstatusValue =  statusValue? statusValue[1] : statusValue;\r\nlet cssClass = statusValue === \"EXCEPTION\" ?\r\n    \"msg-status-exception\" : 'msg';\r\nlet parsedValue = /\\[(.*)/.exec(value);\r\nparsedValue = parsedValue ? parsedValue[0] : parsedValue;\r\nreturn `<span class='${cssClass}'>${parsedValue || value}</span>`;"
                  },
                  "_hash": 0.6931154680365814,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "if (value.includes(\"RPC\")&&!value.includes(\"GRPC\")) {\n    return value;\n} else return '';"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 604800000,
              "quickInterval": "CURRENT_DAY",
              "interval": 1000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "showTimestamp": true,
            "showMilliseconds": false,
            "displayPagination": true,
            "useEntityLabel": false,
            "defaultPageSize": 10,
            "hideEmptyLines": true,
            "disableStickyHeader": false,
            "useRowStyleFunction": false
          },
          "title": "RPC Logs",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 600,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": true,
          "titleTooltip": "",
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n}\r\n\r\n.status-debug {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n}\r\n\r\n.status-warning {\r\n    color: orange;\r\n    background: rgba(255, 165, 0, 0.1);\r\n}\r\n\r\n.status-error {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n}\r\n\r\n.status-info {\r\n    color: blue;\r\n    background: rgba(0, 0, 128, 0.1);\r\n}\r\n\r\n.msg-status-exception {\r\n    color: red;\r\n}",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px",
          "configMode": "basic",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null
        },
        "row": 0,
        "col": 0,
        "id": "da01e13f-c108-39fd-2a74-b40da088769a",
        "typeFullFqn": "system.cards.timeseries_table"
      },
      "ce3065bf-d898-2c03-6236-ce1b6cdf1f3f": {
        "type": "rpc",
        "sizeX": 9.5,
        "sizeY": 5.5,
        "config": {
          "targetDeviceAliases": [],
          "showTitle": true,
          "backgroundColor": "#010101",
          "color": "rgba(255, 254, 254, 0.87)",
          "padding": "0px",
          "settings": {
            "parseGpioStatusFunction": "return body[pin] === true;",
            "gpioStatusChangeRequest": {
              "method": "setGpioStatus",
              "paramsBody": "{\n   \"pin\": \"{$pin}\",\n   \"enabled\": \"{$enabled}\"\n}"
            },
            "requestTimeout": 500,
            "switchPanelBackgroundColor": "#b71c1c",
            "gpioStatusRequest": {
              "method": "getGpioStatus",
              "paramsBody": "{}"
            },
            "gpioList": [
              {
                "pin": 1,
                "label": "GPIO 1",
                "row": 0,
                "col": 0,
                "_uniqueKey": 0
              },
              {
                "pin": 2,
                "label": "GPIO 2",
                "row": 0,
                "col": 1,
                "_uniqueKey": 1
              },
              {
                "pin": 3,
                "label": "GPIO 3",
                "row": 1,
                "col": 0,
                "_uniqueKey": 2
              }
            ]
          },
          "title": "RPC debug terminal",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "actions": {},
          "datasources": [],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "borderRadius": "4px",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8"
          }
        },
        "row": 0,
        "col": 0,
        "id": "ce3065bf-d898-2c03-6236-ce1b6cdf1f3f",
        "typeFullFqn": "system.control_widgets.rpc_debug_terminal"
      },
      "46b68eb5-7e2d-bca1-c2ef-061b64575218": {
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "targetDeviceAliases": [],
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "parseGpioStatusFunction": "return body[pin] === true;",
            "gpioStatusChangeRequest": {
              "method": "setGpioStatus",
              "paramsBody": "{\n   \"pin\": \"{$pin}\",\n   \"enabled\": \"{$enabled}\"\n}"
            },
            "requestTimeout": 500,
            "switchPanelBackgroundColor": "#b71c1c",
            "gpioStatusRequest": {
              "method": "getGpioStatus",
              "paramsBody": "{}"
            },
            "gpioList": [
              {
                "pin": 1,
                "label": "GPIO 1",
                "row": 0,
                "col": 0,
                "_uniqueKey": 0
              },
              {
                "pin": 2,
                "label": "GPIO 2",
                "row": 0,
                "col": 1,
                "_uniqueKey": 1
              },
              {
                "pin": 3,
                "label": "GPIO 3",
                "row": 1,
                "col": 0,
                "_uniqueKey": 2
              }
            ]
          },
          "title": "Service RPC",
          "datasources": [],
          "showTitleIcon": false,
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "widgetCss": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 600
          },
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "showLegend": false,
          "borderRadius": "4px",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8"
          }
        },
        "row": 0,
        "col": 0,
        "id": "46b68eb5-7e2d-bca1-c2ef-061b64575218",
        "typeFullFqn": "system.gateway_widgets.service_rpc"
      },
      "878c68fd-71cb-21d4-684a-b5b5a4526b43": {
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "targetDeviceAliases": [],
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "isConnector": true
          },
          "title": "Service RPC",
          "datasources": [],
          "showTitleIcon": false,
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "widgetCss": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 600
          },
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "showLegend": false,
          "borderRadius": "4px",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8"
          }
        },
        "row": 0,
        "col": 0,
        "id": "878c68fd-71cb-21d4-684a-b5b5a4526b43",
        "typeFullFqn": "system.gateway_widgets.service_rpc"
      },
      "0fc7dcf3-32a2-0159-738e-96956bf0d450": {
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "SERVICE_LOGS",
                  "type": "timeseries",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"DEBUG\":\r\n        cssClass = \"status status-debug\";\r\n        break;\r\n      case \"WARNING\":\r\n        cssClass = \"status status-warning\";\r\n        break;\r\n      case \"ERROR\":\r\n      case \"EXCEPTION\":\r\n        cssClass = \"status status-error\";\r\n        break;\r\n      case \"INFO\":\r\n      default:\r\n        cssClass = \"status status-info\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;"
                  },
                  "_hash": 0.6667576563240645,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "if (value.includes(\"RPC\")&&!value.includes(\"GRPC\")) {\n    let parsedValue = value.match(/\\|(\\w+)\\|/);\n    parsedValue = parsedValue ? parsedValue[1] :\n    parsedValue;\n    return parsedValue || value;\n} else return '';"
                },
                {
                  "name": "SERVICE_LOGS",
                  "type": "timeseries",
                  "label": "Details",
                  "color": "#2196f3",
                  "settings": {
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let statusValue = value.match(/\\|(\\w+)\\|/); \r\nstatusValue =  statusValue? statusValue[1] : statusValue;\r\nlet cssClass = statusValue === \"EXCEPTION\" ?\r\n    \"msg-status-exception\" : 'msg';\r\nlet parsedValue = /\\[(.*)/.exec(value);\r\nparsedValue = parsedValue ? parsedValue[0] : parsedValue;\r\nreturn `<span class='${cssClass}'>${parsedValue || value}</span>`;"
                  },
                  "_hash": 0.6931154680365814,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "if (value.includes(\"RPC\")&&!value.includes(\"GRPC\")) {\n    return value;\n} else return '';"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideInterval": false,
            "hideLastInterval": false,
            "hideQuickInterval": false,
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 604800000,
              "quickInterval": "CURRENT_DAY",
              "interval": 1000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "showTimestamp": true,
            "showMilliseconds": false,
            "displayPagination": true,
            "useEntityLabel": false,
            "defaultPageSize": 10,
            "hideEmptyLines": true,
            "disableStickyHeader": false,
            "useRowStyleFunction": false
          },
          "title": "RPC Logs",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 600,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": true,
          "titleTooltip": "",
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n}\r\n\r\n.status-debug {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n}\r\n\r\n.status-warning {\r\n    color: orange;\r\n    background: rgba(255, 165, 0, 0.1);\r\n}\r\n\r\n.status-error {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n}\r\n\r\n.status-info {\r\n    color: blue;\r\n    background: rgba(0, 0, 128, 0.1);\r\n}\r\n\r\n.msg-status-exception {\r\n    color: red;\r\n}",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "0fc7dcf3-32a2-0159-738e-96956bf0d450",
        "typeFullFqn": "system.cards.timeseries_table"
      },
      "6e136fbc-545b-4926-c0a9-79348f35628a": {
        "type": "rpc",
        "sizeX": 9.5,
        "sizeY": 5.5,
        "config": {
          "targetDeviceAliases": [],
          "showTitle": true,
          "backgroundColor": "#010101",
          "color": "rgba(255, 254, 254, 0.87)",
          "padding": "0px",
          "settings": {
            "parseGpioStatusFunction": "return body[pin] === true;",
            "gpioStatusChangeRequest": {
              "method": "setGpioStatus",
              "paramsBody": "{\n   \"pin\": \"{$pin}\",\n   \"enabled\": \"{$enabled}\"\n}"
            },
            "requestTimeout": 500,
            "switchPanelBackgroundColor": "#b71c1c",
            "gpioStatusRequest": {
              "method": "getGpioStatus",
              "paramsBody": "{}"
            },
            "gpioList": [
              {
                "pin": 1,
                "label": "GPIO 1",
                "row": 0,
                "col": 0,
                "_uniqueKey": 0
              },
              {
                "pin": 2,
                "label": "GPIO 2",
                "row": 0,
                "col": 1,
                "_uniqueKey": 1
              },
              {
                "pin": 3,
                "label": "GPIO 3",
                "row": 1,
                "col": 0,
                "_uniqueKey": 2
              }
            ]
          },
          "title": "New RPC debug terminal",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "actions": {},
          "datasources": [],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "borderRadius": "4px",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8"
          }
        },
        "row": 0,
        "col": 0,
        "id": "6e136fbc-545b-4926-c0a9-79348f35628a",
        "typeFullFqn": "system.control_widgets.rpc_debug_terminal"
      },
      "fb9df382-6ef3-4aa6-bc13-8bf8e300ba19": {
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": []
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "<div class=\"action-buttons-container\">\r\n  <button mat-raised-button color=\"primary\" id=\"launchCommand\">\r\n  {{ 'gateway.launch-command' | translate }}\r\n </button>\r\n</div>",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".action-buttons-container {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    flex-direction: row;\r\n    height: 100%;\r\n    width: 100%;\r\n    align-content: center;\r\n}\r\n\r\nbutton {\r\n    flex-grow: 1;\r\n    margin: 10px;\r\n    min-width: 150px;\r\n    height: auto;\r\n    line-height: 36px;\n}"
          },
          "title": "Service command",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "actions": {
            "elementClick": [
              {
                "name": "launchCommand",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<div class=\"container\">\n    <mat-toolbar class=\"flex flex-row items-center\" color=\"primary\">\n        <h2>{{ 'gateway.launch-command' | translate }}</h2>\n        <span class=\"flex-1\"></span>\n        <div [tb-help]=\"'gatewayInstall'\"></div>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <tb-gateway-command [deviceId]=\"entityId\"></tb-gateway-command>\n    <div mat-dialog-actions class=\"flex flex-row justify-end items-center\">\n        <button mat-button color=\"primary\"\n            type=\"button\"\n            (click)=\"cancel()\" cdkFocusInitial>\n            {{ 'action.close' | translate }}\n        </button>\n    </div>\n</div>\n",
                "customCss": ".container {\n    display: grid;\n    grid-template-rows: min-content minmax(auto, 1fr) min-content;\n    height: 100%;\n    max-height: 100vh;\n    width: 600px;\n    max-width: 100%;\n}",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\n\nopenCommands();\n\nfunction openCommands() {\n    customDialog.customDialog(htmlTemplate, CommandsDialogController, {panelClass: \"test\"}).subscribe();\n}\n\nfunction CommandsDialogController(instance) {\n    let vm = instance;\n    \n    vm.entityId = entityId.id;\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n}\n",
                "customResources": [
                  {
                    "url": "tb-resource;/api/resource/js_module/system/gateway-management-extension.js",
                    "isModule": true
                  }
                ],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "337c767b-3217-d3d3-b955-7b0bd0858a1d"
              }
            ]
          },
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "fb9df382-6ef3-4aa6-bc13-8bf8e300ba19",
        "typeFullFqn": "system.gateway_widgets.markdown_card"
      },
      "61d149e8-b249-5526-e5d7-6ad58413982e": {
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "general_configuration",
                  "type": "attribute",
                  "label": "general_configuration",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.739858588321151
                },
                {
                  "name": "RemoteLoggingLevel",
                  "type": "attribute",
                  "label": "RemoteLoggingLevel",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.20230761305210687
                }
              ]
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "useMarkdownTextFunction": true,
            "markdownTextPattern": "# Markdown/HTML card \\n - **Current entity**: **${entityName}**. \\n - **Current value**: **${Random}**.",
            "markdownTextFunction": "const conf = data[0].general_configuration ? JSON.parse(data[0].general_configuration) : {};\nconst disabledLogsBtn = data[0] && data[0].RemoteLoggingLevel ? data[0].RemoteLoggingLevel == \"NONE\" : true;\nconst disabledStatisticsBtn = typeof conf.statistics?.enable === 'boolean' && !conf.statistics.enable;\nconst disabledRemoteShellBtn = !conf.remoteShell;\nreturn `<div class=\"action-buttons-container flex flex-col md:flex-row flex-wrap gap-1\">\n  <button mat-raised-button disabled=\"false\" color=\"primary\" id=\"generalConfiguration\" class=\"w-full md:w-1/2\">{{ 'gateway.general-configuration-widget.general-configuration' | translate }}</button>\n  <button mat-raised-button disabled=\"false\" color=\"primary\" id=\"connectorsConfiguration\" class=\"w-full md:w-1/2\">{{ 'gateway.general-configuration-widget.connectors-configuration' | translate }}</button>\n  <button mat-raised-button disabled=\"${disabledLogsBtn}\" color=\"primary\" id=\"logs\" class=\"w-full md:w-1/2\">{{ 'gateway.general-configuration-widget.logs' | translate }}</button>\n  <button mat-raised-button disabled=\"${disabledStatisticsBtn}\" color=\"primary\" id=\"statistics\" class=\"w-full md:w-1/2\">{{ 'gateway.general-configuration-widget.statistics' | translate }}</button>\n  <button mat-raised-button disabled=\"${disabledRemoteShellBtn}\" color=\"primary\" id=\"remoteShell\" class=\"w-full md:w-1/2\">{{ 'gateway.general-configuration-widget.remote-shell' | translate }}</button>\n  <button mat-raised-button disabled=\"false\" color=\"primary\" id=\"rpc\" class=\"w-full md:w-1/2\">{{ 'gateway.general-configuration-widget.rpc' | translate }}</button>\n</div>`;\n",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".action-buttons-container {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    flex-direction: row;\r\n    height: 100%;\r\n    width: 100%;\r\n    align-content: start;\r\n}\r\n\r\nbutton {\r\n    flex-grow: 1;\r\n    margin: 10px;\r\n    min-width: 150px;\r\n    height: auto;\r\n    line-height: 36px;\n}"
          },
          "title": "General configuration",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "actions": {
            "elementClick": [
              {
                "name": "generalConfiguration",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "configuration",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "337c767b-3217-d3d3-b955-7b0bd0858a1d"
              },
              {
                "name": "connectorsConfiguration",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "connectors",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "00469ea7-f4c4-e39d-a735-c74b6ba6a026"
              },
              {
                "name": "logs",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "logs",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "d8607421-28b4-7c3b-949b-f69c3a46b461"
              },
              {
                "name": "statistics",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "",
                "customCss": "",
                "customFunction": "widgetContext.stateController.openState('storage_statistics', widgetContext.stateController.getStateParams());",
                "customResources": [
                  {
                    "url": "tb-resource;/api/resource/js_module/system/gateway-management-extension.js",
                    "isModule": true
                  }
                ],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "425ba0d8-8e26-18a5-881d-bebe27fb2a7a"
              },
              {
                "name": "remoteShell",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "remote_shell",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "2c4c7dcc-009f-64eb-5f1b-a991df6d25a2"
              },
              {
                "name": "rpc",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "rpc",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "35705df8-69cf-7f76-b52f-d53c5a1931c0"
              }
            ]
          },
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "61d149e8-b249-5526-e5d7-6ad58413982e",
        "typeFullFqn": "system.gateway_widgets.markdown_card"
      },
      "3d661190-7463-ba61-6793-503c85af67ec": {
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "function",
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "dataKeys": [
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "connectorType",
                  "color": "#9e9e9e",
                  "settings": {},
                  "_hash": 0.9675646714923356
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": true,
            "markdownTextPattern": "",
            "markdownTextFunction": "const count = {\n    mqtt: 0,\n    modbus: 0,\n    grpc: 0,\n    opcua: 0,\n    ble: 0,\n    request: 0,\n    can: 0,\n    bacnet: 0,\n    odbc: 0,\n    rest: 0,\n    snmp: 0,\n    ftp: 0,\n    socket: 0,\n    xmpp: 0,\n    ocpp: 0,\n    knx: 0,\n    custom: 0\n};\n\ndata.forEach(entity => count[entity.connectorType] = count[entity.connectorType]+1);\n\nlet result = `<div style=\"width: 100%; height: 100%; padding: 0;\" class=\"flex flex-col\">\n  <mat-tab-group class=\"devices-tabs\">\n    <mat-tab label=\"All\" value=\"gateway_devices_all\">\n      <tb-dashboard-state [ctx]=\"ctx\" class=\"flex-1\" syncParentStateParams=\"true\" stateId=\"gateway_devices_all\"></tb-dashboard-state>\n    </mat-tab>`;\n\nObject.keys(count).forEach(key => {\n   if (count[key]) {\n       result = result + \n       `<mat-tab label=\"${key.toUpperCase()}\" value=\"gateway_devices_${key}\">\n            <tb-dashboard-state [ctx]=\"ctx\" class=\"flex-1\" syncParentStateParams=\"true\" stateId=\"gateway_devices_${key}\"></tb-dashboard-state>\n        </mat-tab>`\n   } \n});\n\nresult = result + '</mat-tab-group></div>';\n\nreturn result;",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".mat-mdc-form-field-subscript-wrapper {\n    display: none !important;\n}\n\n.devices-tabs {\n    height: 100%;\n}\n\n::ng-deep .mat-mdc-tab-body-wrapper {\n  height: 100%;\n}"
          },
          "title": "Gateway devices",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px"
        },
        "row": 0,
        "col": 0,
        "id": "3d661190-7463-ba61-6793-503c85af67ec",
        "typeFullFqn": "system.gateway_widgets.markdown_card"
      },
      "1615bd4e-c0a4-c32c-3706-3c83214cb8d7": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "",
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "45e4507d-3adc-bb31-8b2b-1ba09bbd56ac"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "1615bd4e-c0a4-c32c-3706-3c83214cb8d7",
        "typeFullFqn": "system.cards.entities_table"
      },
      "aafba3d8-a381-21c0-ecbe-446da3cdc041": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "bd9176e1-9e04-3e9b-d5a5-07b72bb9ae90",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "borderRadius": "4px",
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "852eccce-98eb-24db-c783-bdd62566f906"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "aafba3d8-a381-21c0-ecbe-446da3cdc041",
        "typeFullFqn": "system.cards.entities_table"
      },
      "7f676bb2-bde2-10e7-80d8-25dd734e8e22": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "44038462-1bae-e075-7b31-283341cb2295",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "3c31ba62-e760-2bea-4c8d-d32784a86c24"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "7f676bb2-bde2-10e7-80d8-25dd734e8e22",
        "typeFullFqn": "system.cards.entities_table"
      },
      "d64482d8-001a-6f33-9b56-665530098fe5": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "884e9c34-7534-a483-99be-81b56cd91185",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "4b55ea81-93bf-4206-9166-3e0bdc1dd9f3"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "d64482d8-001a-6f33-9b56-665530098fe5",
        "typeFullFqn": "system.cards.entities_table"
      },
      "bb27723a-989c-2327-5808-b56d490b93ab": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "e91ca0e9-1653-4fbc-5f3d-3da021b1b415",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "babf88d0-a118-e2b5-f10e-3a5970c8a65b"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "bb27723a-989c-2327-5808-b56d490b93ab",
        "typeFullFqn": "system.cards.entities_table"
      },
      "cf2eba6b-44f6-9cc2-6089-35c735f54898": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "3f74cbaa-6353-5e88-a7e8-708fc0e18039",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "18414f44-1c65-536a-14de-eaf21a7d56bd"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "cf2eba6b-44f6-9cc2-6089-35c735f54898",
        "typeFullFqn": "system.cards.entities_table"
      },
      "3f6ed61b-f5af-13e3-7505-f69fd53f8211": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "c08eee84-64ee-73c4-8d96-c0df813a92cd",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "794974da-c9d2-a9f7-be47-c9eb642094e8"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "3f6ed61b-f5af-13e3-7505-f69fd53f8211",
        "typeFullFqn": "system.cards.entities_table"
      },
      "b06cecaa-2806-65a9-782d-4f2d8cf95a6c": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "2f0af7f5-22ea-c0d5-3aef-7f2bb1b534ec",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "2add705b-3e53-8559-8126-380cac686fb0"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "b06cecaa-2806-65a9-782d-4f2d8cf95a6c",
        "typeFullFqn": "system.cards.entities_table"
      },
      "c3d39b60-a668-7f5e-e6f4-cae27151f4aa": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "92a7d208-c143-ea20-5162-1da584532830",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "7e1ba820-9992-d52a-579b-20485abb3926"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "c3d39b60-a668-7f5e-e6f4-cae27151f4aa",
        "typeFullFqn": "system.cards.entities_table"
      },
      "f78a0d66-60cb-188f-857f-9acd4d24bd5a": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "498f090c-b1e5-df74-35d1-3ecf89d33f1c",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "91af27c1-b37c-2276-6022-a332e41b2b33"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "f78a0d66-60cb-188f-857f-9acd4d24bd5a",
        "typeFullFqn": "system.cards.entities_table"
      },
      "b81a171c-77c0-b857-21d2-cff02a1cb733": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "9175179d-a8db-848b-0762-e78da150e768",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "26cf8696-054b-13ec-7984-6fc5df20e6f1"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "b81a171c-77c0-b857-21d2-cff02a1cb733",
        "typeFullFqn": "system.cards.entities_table"
      },
      "0e399bef-01d2-4e4e-02d2-e254ebe91e56": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "1b70460b-428b-2aed-f23a-65927d3e67bb",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "1dcfaf24-32be-cd19-62d6-86d12cc6a7ef"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "0e399bef-01d2-4e4e-02d2-e254ebe91e56",
        "typeFullFqn": "system.cards.entities_table"
      },
      "819c1d39-de7c-8ac3-858e-0040d286823e": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "ae357478-b4c2-eee8-dde6-a6942fe6202f",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "ad2bc817-f3c4-150c-4672-8fe0c38aee8d"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "819c1d39-de7c-8ac3-858e-0040d286823e",
        "typeFullFqn": "system.cards.entities_table"
      },
      "d4f73f32-f719-98bb-d427-b5c8957e8f47": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "6eef4979-369f-c2cc-4894-96a84b6a668a",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "d1ad84cd-bd9c-4dca-e4a0-f444ae8598bd"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "d4f73f32-f719-98bb-d427-b5c8957e8f47",
        "typeFullFqn": "system.cards.entities_table"
      },
      "f16a258c-3f6c-9317-fda7-48b33d8fe8b9": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "9c8e3a63-01a1-64b5-fe44-4f58f8350340",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "bf80eef9-b879-9a08-40a4-488dbdefa125"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "f16a258c-3f6c-9317-fda7-48b33d8fe8b9",
        "typeFullFqn": "system.cards.entities_table"
      },
      "d1951ec7-ab13-87e4-bc05-ce2318dca353": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "c6501413-d823-29c4-992f-9ae6e8e25549",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "b5a406b3-cc0a-8a09-9aec-3f8befae5fb8"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "d1951ec7-ab13-87e4-bc05-ce2318dca353",
        "typeFullFqn": "system.cards.entities_table"
      },
      "75b6372d-4def-42b4-8774-4edf413a8b83": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "2f04d6e5-8438-857a-ca78-ae78cc8b0c03",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "ec1dfba3-4b43-2491-8948-f602337f8a3b"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "75b6372d-4def-42b4-8774-4edf413a8b83",
        "typeFullFqn": "system.cards.entities_table"
      },
      "b4194e1e-97af-ed0b-a6a4-70011c71c579": {
        "typeFullFqn": "system.gateway_widgets.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "general_configuration",
                  "type": "attribute",
                  "label": "general_configuration",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3480165322736335
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "useMarkdownTextFunction": true,
            "markdownTextPattern": "let buttonsHtml = \"\" \nctx.actionsApi.getActionDescriptors('elementClick').forEach((btn, index)=>{\n    let disabled = false;\n    if (index == 2) {\n        disabled = data[0] && data[0].RemoteLoggingLevel ? data[0].RemoteLoggingLevel == \"NONE\" : true;\n    } else if (index == 4) {\n        const conf = data[0].general_configuration ? JSON.parse(data[0].general_configuration) : {};\n        disabled = !conf.remoteShell;\n    }\n    buttonsHtml += `<button mat-raised-button disabled=${disabled} color=\"primary\" (click)=\"ctx.actionsApi.handleWidgetAction($event, ctx.actionsApi.getActionDescriptors('elementClick')[${index}], ctx.datasources[0].entity.id)\" class=\"w-full md:w-1/2\">${btn.displayName}</button>`\n});\n\nreturn `<div class=\"action-buttons-container flex flex-col md:flex-row flex-wrap gap-1\">${buttonsHtml}</div>`;",
            "markdownTextFunction": "const currentState = ctx.stateController.getStateId();\nconst conf = data[0].general_configuration ? JSON.parse(data[0].general_configuration) : {};\nconst disabled = !conf.statistics?.enableCustom;\nreturn `<div class=\"action-buttons-container flex flex-col md:flex-row flex-wrap gap-1\">\n<button mat-stroked-button [class.tb-primary-fill]=\"${currentState === 'storage_statistics'}\" color=\"primary\" id=\"storage_statistics\" class=\"w-full md:w-1/2\">\n{{ 'gateway.statistics-nav-widget.storage-statistics' | translate }}\n</button>\n<button mat-stroked-button [class.tb-primary-fill]=\"${currentState === 'machine_statistics'}\" color=\"primary\" id=\"machine_statistics\" class=\"w-full md:w-1/2\">\n{{ 'gateway.statistics-nav-widget.machine-statistics' | translate }}\n</button>\n<button mat-stroked-button [class.tb-primary-fill]=\"${currentState === 'custom_statistics'}\" disabled=\"${disabled}\" color=\"primary\" id=\"custom_statistics\" class=\"w-full md:w-1/2\">\n{{ 'gateway.statistics-nav-widget.custom-statistics' | translate }}\n</button>\n</div>`;",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".action-buttons-container {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    flex-direction: row;\r\n    height: 100%;\r\n    width: 100%;\r\n    align-content: start;\r\n}\r\n\r\nbutton {\r\n    flex-grow: 1;\r\n    margin: 10px;\r\n    min-width: 150px;\r\n    height: auto;\r\n    line-height: 36px;\r\n}"
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "actions": {
            "elementClick": [
              {
                "name": "storage_statistics",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "widgetContext.stateController.updateState('storage_statistics', widgetContext.stateController.getStateParams(), false);\nwidgetContext.$scope.markdownWidget.onDataUpdated();",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "56342fb4-e698-1db3-a8f1-34a3b44735c5"
              },
              {
                "name": "machine_statistics",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "widgetContext.stateController.updateState('machine_statistics', widgetContext.stateController.getStateParams(), false);\nwidgetContext.$scope.markdownWidget.onDataUpdated();",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "dffa7e63-2382-12fa-ef1c-13e162b1acaf"
              },
              {
                "name": "custom_statistics",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "widgetContext.stateController.updateState('custom_statistics', widgetContext.stateController.getStateParams(), false);\nwidgetContext.$scope.markdownWidget.onDataUpdated();",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "f6d267d0-3e3e-d519-bf7f-836fd59fd10f"
              }
            ]
          },
          "borderRadius": "5px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "margin": "16px 16px 0 0",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b4194e1e-97af-ed0b-a6a4-70011c71c579"
      },
      "3a005e49-327c-beaa-8d19-c36b833001f0": {
        "typeFullFqn": "system.gateway_widgets.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "dataKeys": []
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "<div class=\"tb-card-content\">\n    <tb-dashboard-state class=\"flex-1\" stateId=\"storage_statistics_info\" [ctx]=\"ctx\"></tb-dashboard-state>\n</div>",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".tb-card-content {\n    width: 100%;\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n}"
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": false,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3a005e49-327c-beaa-8d19-c36b833001f0"
      },
      "5f26fe0d-4417-31c6-0a98-8760cda909c5": {
        "typeFullFqn": "system.cards.aggregated_value_card",
        "type": "timeseries",
        "sizeX": 4.5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.storage-message-count}",
                  "color": "rgba(0, 0, 0, 0.87)",
                  "settings": {},
                  "_hash": 0.9654072247591918,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.storageMsgCount ?? 0) : 0;"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": [
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.storage-message-count}",
                  "color": "#4caf50",
                  "settings": {
                    "position": "center",
                    "font": {
                      "size": 52,
                      "sizeUnit": "px",
                      "family": "Roboto",
                      "weight": "500",
                      "style": "normal",
                      "lineHeight": "1"
                    },
                    "color": {
                      "type": "constant",
                      "color": "rgba(0, 0, 0, 0.87)",
                      "rangeList": {
                        "advancedMode": false,
                        "range": []
                      },
                      "colorFunction": "var temperature = value;\nif (typeof temperature !== undefined) {\n  var percent = (temperature + 60)/120 * 100;\n  return tinycolor.mix('blue', 'red', percent).toHexString();\n}\nreturn 'blue';"
                    },
                    "showArrow": false
                  },
                  "_hash": 0.33607518861078467,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.storageMsgCount ?? 0) : 0;"
                }
              ]
            }
          ],
          "showTitle": true,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": null,
          "padding": "0",
          "settings": {
            "stack": false,
            "fontSize": 10,
            "fontColor": "#545454",
            "showTooltip": true,
            "tooltipIndividual": false,
            "tooltipCumulative": false,
            "hideZeros": false,
            "grid": {
              "verticalLines": true,
              "horizontalLines": true,
              "outlineWidth": 1,
              "color": "#545454",
              "backgroundColor": null,
              "tickColor": "#DDDDDD"
            },
            "xaxis": {
              "title": null,
              "showLabels": true,
              "color": "#545454"
            },
            "yaxis": {
              "min": null,
              "max": null,
              "title": null,
              "showLabels": true,
              "color": "#545454",
              "tickSize": null,
              "tickDecimals": 0,
              "ticksFormatter": ""
            },
            "shadowSize": 4,
            "smoothLines": false,
            "comparisonEnabled": false,
            "xaxisSecond": {
              "axisPosition": "top",
              "title": null,
              "showLabels": true
            },
            "showLegend": true,
            "legendConfig": {
              "direction": "column",
              "position": "bottom",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": false
            },
            "customLegendEnabled": false,
            "showSubtitle": false,
            "subtitle": "${entityName}",
            "subtitleFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "subtitleColor": "rgba(0, 0, 0, 0.38)",
            "showDate": false,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "dateColor": "rgba(0, 0, 0, 0.38)",
            "showChart": true,
            "chartColor": "rgba(0, 0, 0, 0.87)",
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": "18px"
          },
          "title": "{i18n:gateway.statistics.storage-message-count}",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "mobileHeight": null,
          "configMode": "advanced",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "water_drop",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": "normal",
            "lineHeight": "24px"
          },
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "useDashboardTimewindow": true,
          "decimals": 0,
          "titleColor": "rgba(0, 0, 0, 0.87)",
          "borderRadius": "5px",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5f26fe0d-4417-31c6-0a98-8760cda909c5"
      },
      "dc060491-215c-3e63-edc2-66d52888735d": {
        "typeFullFqn": "system.cards.aggregated_value_card",
        "type": "timeseries",
        "sizeX": 4.5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.messages-from-platform}",
                  "color": "rgba(0, 0, 0, 0.87)",
                  "settings": {},
                  "_hash": 0.6231145484349594,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.storageMsgPulled ?? 0) : 0;"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": [
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.messages-from-platform}",
                  "color": "#4caf50",
                  "settings": {
                    "position": "center",
                    "font": {
                      "size": 52,
                      "sizeUnit": "px",
                      "family": "Roboto",
                      "weight": "500",
                      "style": "normal",
                      "lineHeight": "1"
                    },
                    "color": {
                      "type": "constant",
                      "color": "rgba(0, 0, 0, 0.87)",
                      "rangeList": {
                        "advancedMode": false,
                        "range": []
                      },
                      "colorFunction": "var temperature = value;\nif (typeof temperature !== undefined) {\n  var percent = (temperature + 60)/120 * 100;\n  return tinycolor.mix('blue', 'red', percent).toHexString();\n}\nreturn 'blue';"
                    },
                    "showArrow": false
                  },
                  "_hash": 0.5477883831089236,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.msgsReceivedFromPlatform ?? 0) : 0;"
                }
              ]
            }
          ],
          "showTitle": true,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": null,
          "padding": "0",
          "settings": {
            "stack": false,
            "fontSize": 10,
            "fontColor": "#545454",
            "showTooltip": true,
            "tooltipIndividual": false,
            "tooltipCumulative": false,
            "hideZeros": false,
            "grid": {
              "verticalLines": true,
              "horizontalLines": true,
              "outlineWidth": 1,
              "color": "#545454",
              "backgroundColor": null,
              "tickColor": "#DDDDDD"
            },
            "xaxis": {
              "title": null,
              "showLabels": true,
              "color": "#545454"
            },
            "yaxis": {
              "min": null,
              "max": null,
              "title": null,
              "showLabels": true,
              "color": "#545454",
              "tickSize": null,
              "tickDecimals": 0,
              "ticksFormatter": ""
            },
            "shadowSize": 4,
            "smoothLines": false,
            "comparisonEnabled": false,
            "xaxisSecond": {
              "axisPosition": "top",
              "title": null,
              "showLabels": true
            },
            "showLegend": true,
            "legendConfig": {
              "direction": "column",
              "position": "bottom",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": false
            },
            "customLegendEnabled": false,
            "showSubtitle": false,
            "subtitle": "${entityName}",
            "subtitleFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "subtitleColor": "rgba(0, 0, 0, 0.38)",
            "showDate": false,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "dateColor": "rgba(0, 0, 0, 0.38)",
            "showChart": true,
            "chartColor": "rgba(0, 0, 0, 0.87)",
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": "18px"
          },
          "title": "{i18n:gateway.statistics.messages-from-platform}",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "mobileHeight": null,
          "configMode": "advanced",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "water_drop",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": "normal",
            "lineHeight": "24px"
          },
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "useDashboardTimewindow": true,
          "decimals": 0,
          "titleColor": "rgba(0, 0, 0, 0.87)",
          "borderRadius": "5px",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "dc060491-215c-3e63-edc2-66d52888735d"
      },
      "b37b2916-acd7-353b-6fbc-ceddac152ee8": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.attributes}",
                  "color": "#4CAF50",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.3127202960057933,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.platformAttrProduced ?? 0) : 0;"
                },
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.telemetry}",
                  "color": "#F5DD00",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.40795689707022653,
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.platformTsProduced ?? 0) : 0;",
                  "units": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 300000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1733156943343,
                "endTimeMs": 1733243343343
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 25000
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "showLegend": true,
            "legendConfig": {
              "direction": "column",
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": false
            },
            "thresholds": [],
            "dataZoom": false,
            "stack": false,
            "yAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "left",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "xAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "bottom",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 10,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "ticksFormat": {},
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "showTooltip": true,
            "tooltipTrigger": "axis",
            "tooltipValueFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "16px"
            },
            "tooltipValueColor": "rgba(0, 0, 0, 0.76)",
            "tooltipShowDate": true,
            "tooltipDateFormat": {
              "format": null,
              "lastUpdateAgo": false,
              "custom": false,
              "auto": true,
              "autoDateFormatSettings": {}
            },
            "tooltipDateFont": {
              "family": "Roboto",
              "size": 11,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "tooltipDateColor": "rgba(0, 0, 0, 0.76)",
            "tooltipDateInterval": true,
            "tooltipBackgroundColor": "rgba(255, 255, 255, 0.76)",
            "tooltipBackgroundBlur": 4,
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "yAxes": {
              "default": {
                "units": null,
                "decimals": 0,
                "show": true,
                "label": "",
                "labelFont": {
                  "family": "Roboto",
                  "size": 12,
                  "sizeUnit": "px",
                  "style": "normal",
                  "weight": "600",
                  "lineHeight": "1"
                },
                "labelColor": "rgba(0, 0, 0, 0.54)",
                "position": "left",
                "showTickLabels": true,
                "tickLabelFont": {
                  "family": "Roboto",
                  "size": 12,
                  "sizeUnit": "px",
                  "style": "normal",
                  "weight": "400",
                  "lineHeight": "1"
                },
                "tickLabelColor": "rgba(0, 0, 0, 0.54)",
                "ticksFormatter": null,
                "showTicks": true,
                "ticksColor": "rgba(0, 0, 0, 0.54)",
                "showLine": true,
                "lineColor": "rgba(0, 0, 0, 0.54)",
                "showSplitLines": true,
                "splitLinesColor": "rgba(0, 0, 0, 0.12)",
                "id": "default",
                "order": 0
              }
            },
            "noAggregationBarWidthSettings": {
              "strategy": "group",
              "groupWidth": {
                "relative": true,
                "relativeWidth": 2,
                "absoluteWidth": 1000
              },
              "barWidth": {
                "relative": true,
                "relativeWidth": 2,
                "absoluteWidth": 1000
              }
            },
            "animation": {
              "animation": true,
              "animationThreshold": 2000,
              "animationDuration": 500,
              "animationEasing": "cubicOut",
              "animationDelay": 0,
              "animationDurationUpdate": 300,
              "animationEasingUpdate": "cubicOut",
              "animationDelayUpdate": 0
            },
            "padding": "12px",
            "comparisonEnabled": false,
            "timeForComparison": "previousInterval",
            "comparisonCustomIntervalValue": 7200000,
            "comparisonXAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "top",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 10,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "ticksFormat": {},
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "grid": {
              "show": false,
              "backgroundColor": null,
              "borderWidth": 1,
              "borderColor": "#ccc"
            },
            "legendColumnTitleFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendColumnTitleColor": "rgba(0, 0, 0, 0.38)",
            "legendValueFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "16px"
            },
            "legendValueColor": "rgba(0, 0, 0, 0.87)",
            "tooltipLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "tooltipLabelColor": "rgba(0, 0, 0, 0.76)"
          },
          "title": "{i18n:gateway.statistics.pushed-datapoints}",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": null,
          "mobileHeight": null,
          "configMode": "advanced",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "thermostat",
          "iconColor": "#1F6BDD",
          "useDashboardTimewindow": false,
          "displayTimewindow": true,
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": "normal",
            "lineHeight": "24px"
          },
          "titleColor": "rgba(0, 0, 0, 0.87)",
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "units": "",
          "decimals": null,
          "noDataDisplayMessage": "",
          "timewindowStyle": {
            "showIcon": false,
            "iconSize": "24px",
            "icon": null,
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "400",
              "style": "normal",
              "lineHeight": "16px"
            },
            "color": "rgba(0, 0, 0, 0.38)",
            "displayTypePrefix": true
          },
          "margin": "0px",
          "borderRadius": "5px",
          "iconSize": "0px",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b37b2916-acd7-353b-6fbc-ceddac152ee8"
      },
      "b5ffefb2-9fb5-cf22-bba2-dba9a98891db": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.messages-pulled-from-storage}",
                  "color": "#4CAF50",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.870233714866288,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.storageMsgPulled ?? 0) : 0;"
                },
                {
                  "name": "serviceStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.messages-pushed-to-platform}",
                  "color": "#F5DD00",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.7046592088349717,
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.platformMsgPushed ?? 0) : 0;",
                  "units": null
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.messages-sent-to-platform}",
                  "color": "#048AD3",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.3711330575822882,
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.msgsSentToPlatform ?? 0) : 0;",
                  "units": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 300000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1733157438025,
                "endTimeMs": 1733243838025
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 25000
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "showLegend": true,
            "legendConfig": {
              "direction": "column",
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": false
            },
            "thresholds": [],
            "dataZoom": false,
            "stack": false,
            "yAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "left",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "xAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "bottom",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 10,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "ticksFormat": {},
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "showTooltip": true,
            "tooltipTrigger": "axis",
            "tooltipValueFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "16px"
            },
            "tooltipValueColor": "rgba(0, 0, 0, 0.76)",
            "tooltipShowDate": true,
            "tooltipDateFormat": {
              "format": null,
              "lastUpdateAgo": false,
              "custom": false,
              "auto": true,
              "autoDateFormatSettings": {}
            },
            "tooltipDateFont": {
              "family": "Roboto",
              "size": 11,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "tooltipDateColor": "rgba(0, 0, 0, 0.76)",
            "tooltipDateInterval": true,
            "tooltipBackgroundColor": "rgba(255, 255, 255, 0.76)",
            "tooltipBackgroundBlur": 4,
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "yAxes": {
              "default": {
                "units": null,
                "decimals": 0,
                "show": true,
                "label": "",
                "labelFont": {
                  "family": "Roboto",
                  "size": 12,
                  "sizeUnit": "px",
                  "style": "normal",
                  "weight": "600",
                  "lineHeight": "1"
                },
                "labelColor": "rgba(0, 0, 0, 0.54)",
                "position": "left",
                "showTickLabels": true,
                "tickLabelFont": {
                  "family": "Roboto",
                  "size": 12,
                  "sizeUnit": "px",
                  "style": "normal",
                  "weight": "400",
                  "lineHeight": "1"
                },
                "tickLabelColor": "rgba(0, 0, 0, 0.54)",
                "ticksFormatter": null,
                "showTicks": true,
                "ticksColor": "rgba(0, 0, 0, 0.54)",
                "showLine": true,
                "lineColor": "rgba(0, 0, 0, 0.54)",
                "showSplitLines": true,
                "splitLinesColor": "rgba(0, 0, 0, 0.12)",
                "id": "default",
                "order": 0
              }
            },
            "noAggregationBarWidthSettings": {
              "strategy": "group",
              "groupWidth": {
                "relative": true,
                "relativeWidth": 2,
                "absoluteWidth": 1000
              },
              "barWidth": {
                "relative": true,
                "relativeWidth": 2,
                "absoluteWidth": 1000
              }
            },
            "animation": {
              "animation": true,
              "animationThreshold": 2000,
              "animationDuration": 500,
              "animationEasing": "cubicOut",
              "animationDelay": 0,
              "animationDurationUpdate": 300,
              "animationEasingUpdate": "cubicOut",
              "animationDelayUpdate": 0
            },
            "padding": "12px",
            "comparisonEnabled": false,
            "timeForComparison": "previousInterval",
            "comparisonCustomIntervalValue": 7200000,
            "comparisonXAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "top",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 10,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "ticksFormat": {},
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "grid": {
              "show": false,
              "backgroundColor": null,
              "borderWidth": 1,
              "borderColor": "#ccc"
            },
            "legendColumnTitleFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendColumnTitleColor": "rgba(0, 0, 0, 0.38)",
            "legendValueFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "16px"
            },
            "legendValueColor": "rgba(0, 0, 0, 0.87)",
            "tooltipLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "tooltipLabelColor": "rgba(0, 0, 0, 0.76)"
          },
          "title": "{i18n:gateway.statistics.messages}",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": null,
          "mobileHeight": null,
          "configMode": "advanced",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "thermostat",
          "iconColor": "#1F6BDD",
          "useDashboardTimewindow": false,
          "displayTimewindow": true,
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": "normal",
            "lineHeight": "24px"
          },
          "titleColor": "rgba(0, 0, 0, 0.87)",
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "units": "",
          "decimals": null,
          "noDataDisplayMessage": "",
          "timewindowStyle": {
            "showIcon": false,
            "iconSize": "24px",
            "icon": null,
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "400",
              "style": "normal",
              "lineHeight": "16px"
            },
            "color": "rgba(0, 0, 0, 0.38)",
            "displayTypePrefix": true
          },
          "margin": "0px",
          "borderRadius": "5px",
          "iconSize": "0px",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b5ffefb2-9fb5-cf22-bba2-dba9a98891db"
      },
      "bc199c75-00da-ca8a-dd0d-16da97a9fa53": {
        "typeFullFqn": "system.gateway_widgets.gateway_status",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "function",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "active",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.07932656697286933
                },
                {
                  "name": "lastDisconnectTime",
                  "type": "attribute",
                  "label": "lastDisconnectTime",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.06662431625551446
                },
                {
                  "name": "lastConnectTime",
                  "type": "attribute",
                  "label": "lastConnectTime",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.28485659401606434
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "",
          "settings": {
            "cardHtml": "<div class='card'>HTML code here</div>",
            "cardCss": ".card {\n    font-weight: bold;\n    font-size: 32px;\n    color: #999;\n    width: 100%;\n    height: 100%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}"
          },
          "title": "HTML Card",
          "dropShadow": true,
          "enableFullscreen": false,
          "margin": "16px 16px 16px 0",
          "borderRadius": "5px",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "bc199c75-00da-ca8a-dd0d-16da97a9fa53"
      },
      "7543e668-35b7-bb97-2f14-163399f8d038": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.process-cpu-usage}",
                  "color": "#4CAF50",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.7171861494760787,
                  "units": "%",
                  "decimals": null,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.gwProcessCpuUsage ?? 0) : 0;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.memory}",
                  "color": "#F5DD00",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.36156284904340863,
                  "aggregationType": null,
                  "units": "%",
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.gwMemory ?? 0) : 0;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "{i18n:gateway.statistics.free-disk}",
                  "color": "#048AD3",
                  "settings": {
                    "yAxisId": "default",
                    "showInLegend": true,
                    "dataHiddenByDefault": false,
                    "type": "line",
                    "lineSettings": {
                      "showLine": true,
                      "step": false,
                      "stepType": "start",
                      "smooth": false,
                      "lineType": "solid",
                      "lineWidth": 2,
                      "showPoints": false,
                      "showPointLabel": false,
                      "pointLabelPosition": "top",
                      "pointLabelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "pointLabelColor": "rgba(0, 0, 0, 0.76)",
                      "enablePointLabelBackground": false,
                      "pointLabelBackground": "rgba(255,255,255,0.56)",
                      "pointShape": "emptyCircle",
                      "pointSize": 4,
                      "fillAreaSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "barSettings": {
                      "showBorder": false,
                      "borderWidth": 2,
                      "borderRadius": 0,
                      "showLabel": false,
                      "labelPosition": "top",
                      "labelFont": {
                        "family": "Roboto",
                        "size": 11,
                        "sizeUnit": "px",
                        "style": "normal",
                        "weight": "400",
                        "lineHeight": "1"
                      },
                      "labelColor": "rgba(0, 0, 0, 0.76)",
                      "enableLabelBackground": false,
                      "labelBackground": "rgba(255,255,255,0.56)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    },
                    "comparisonSettings": {
                      "showValuesForComparison": false,
                      "comparisonValuesLabel": "",
                      "color": ""
                    }
                  },
                  "_hash": 0.17176850375078456,
                  "aggregationType": null,
                  "units": "%",
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.diskUsage ?? 0) : 0;"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 300000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1733159943598,
                "endTimeMs": 1733246343598
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 25000
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "comparisonEnabled": false,
            "timeForComparison": "previousInterval",
            "comparisonCustomIntervalValue": 7200000,
            "comparisonXAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "top",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 10,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "ticksFormat": {},
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "yAxes": {
              "default": {
                "units": null,
                "decimals": 0,
                "show": true,
                "label": "",
                "labelFont": {
                  "family": "Roboto",
                  "size": 12,
                  "sizeUnit": "px",
                  "style": "normal",
                  "weight": "600",
                  "lineHeight": "1"
                },
                "labelColor": "rgba(0, 0, 0, 0.54)",
                "position": "left",
                "showTickLabels": true,
                "tickLabelFont": {
                  "family": "Roboto",
                  "size": 12,
                  "sizeUnit": "px",
                  "style": "normal",
                  "weight": "400",
                  "lineHeight": "1"
                },
                "tickLabelColor": "rgba(0, 0, 0, 0.54)",
                "ticksFormatter": null,
                "showTicks": true,
                "ticksColor": "rgba(0, 0, 0, 0.54)",
                "showLine": true,
                "lineColor": "rgba(0, 0, 0, 0.54)",
                "showSplitLines": true,
                "splitLinesColor": "rgba(0, 0, 0, 0.12)",
                "id": "default",
                "order": 0
              }
            },
            "thresholds": [],
            "dataZoom": false,
            "stack": false,
            "grid": {
              "show": false,
              "backgroundColor": null,
              "borderWidth": 1,
              "borderColor": "#ccc"
            },
            "xAxis": {
              "show": true,
              "label": "",
              "labelFont": {
                "family": "Roboto",
                "size": 12,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "600",
                "lineHeight": "1"
              },
              "labelColor": "rgba(0, 0, 0, 0.54)",
              "position": "bottom",
              "showTickLabels": true,
              "tickLabelFont": {
                "family": "Roboto",
                "size": 10,
                "sizeUnit": "px",
                "style": "normal",
                "weight": "400",
                "lineHeight": "1"
              },
              "tickLabelColor": "rgba(0, 0, 0, 0.54)",
              "ticksFormat": {},
              "showTicks": true,
              "ticksColor": "rgba(0, 0, 0, 0.54)",
              "showLine": true,
              "lineColor": "rgba(0, 0, 0, 0.54)",
              "showSplitLines": true,
              "splitLinesColor": "rgba(0, 0, 0, 0.12)"
            },
            "noAggregationBarWidthSettings": {
              "strategy": "group",
              "groupWidth": {
                "relative": true,
                "relativeWidth": 2,
                "absoluteWidth": 1000
              },
              "barWidth": {
                "relative": true,
                "relativeWidth": 2,
                "absoluteWidth": 1000
              }
            },
            "showLegend": true,
            "legendColumnTitleFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendColumnTitleColor": "rgba(0, 0, 0, 0.38)",
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendValueFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "16px"
            },
            "legendValueColor": "rgba(0, 0, 0, 0.87)",
            "legendConfig": {
              "direction": "column",
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": false
            },
            "showTooltip": true,
            "tooltipTrigger": "axis",
            "tooltipLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "tooltipLabelColor": "rgba(0, 0, 0, 0.76)",
            "tooltipValueFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "16px"
            },
            "tooltipValueColor": "rgba(0, 0, 0, 0.76)",
            "tooltipValueFormatter": null,
            "tooltipShowDate": true,
            "tooltipDateFormat": {
              "format": null,
              "lastUpdateAgo": false,
              "custom": false,
              "auto": true,
              "autoDateFormatSettings": {}
            },
            "tooltipDateFont": {
              "family": "Roboto",
              "size": 11,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "tooltipDateColor": "rgba(0, 0, 0, 0.76)",
            "tooltipDateInterval": true,
            "tooltipBackgroundColor": "rgba(255, 255, 255, 0.76)",
            "tooltipBackgroundBlur": 4,
            "animation": {
              "animation": true,
              "animationThreshold": 2000,
              "animationDuration": 500,
              "animationEasing": "cubicOut",
              "animationDelay": 0,
              "animationDurationUpdate": 300,
              "animationEasingUpdate": "cubicOut",
              "animationDelayUpdate": 0
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "Machine resources",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": null,
          "mobileHeight": null,
          "configMode": "advanced",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "thermostat",
          "iconColor": "#1F6BDD",
          "useDashboardTimewindow": false,
          "displayTimewindow": true,
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": "normal",
            "lineHeight": "24px"
          },
          "titleColor": "rgba(0, 0, 0, 0.87)",
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "units": "",
          "decimals": null,
          "noDataDisplayMessage": "",
          "timewindowStyle": {
            "showIcon": false,
            "iconSize": "24px",
            "icon": null,
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "400",
              "style": "normal",
              "lineHeight": "16px"
            },
            "color": "rgba(0, 0, 0, 0.38)",
            "displayTypePrefix": true
          },
          "margin": "0px",
          "borderRadius": "5px",
          "iconSize": "0px",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7543e668-35b7-bb97-2f14-163399f8d038"
      },
      "7f3ebf9f-d967-44fe-fbe4-4667a2abcf88": {
        "typeFullFqn": "system.gateway_widgets.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "gwProcessCpuUsage",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.635089967416214,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.gwProcessCpuUsage ?? 0) : 0;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "status",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.07814671673811158,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "const usage = value ? (JSON.parse(value)?.gwProcessCpuUsage ?? 0) : 0;\nlet status = 'status-ok';\nif (usage > 85) {\n    status = 'status-critical';\n} else if (usage > 75) {\n    status = 'status-warn';\n}\nreturn status;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "statusTooltip",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.9557245489511306,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "const usage = value ? (JSON.parse(value)?.gwProcessCpuUsage ?? 0) : 0;\nlet text = '';\nif (usage > 85) {\n    text = '{{ \\'widgets.system-info.cpu-critical-text\\' | translate }}';\n} else if (usage > 75) {\n    text = '{{ \\'widgets.system-info.cpu-warning-text\\' | translate }}';\n}\nreturn text;"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "16px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "<div class=\"tb-card-content\">\n    <div class=\"tb-card-title\">\n        <div translate>widgets.system-info.cpu</div>\n        <div matTooltip=\"${statusTooltip}\" matTooltipPosition=\"above\" class=\"tb-status ${status}\"></div>\n    </div>\n    <div class=\"tb-value-container\" matTooltip=\"${gwProcessCpuUsage:1} / 100 %\" matTooltipPosition=\"above\">\n        <span class=\"tb-count\">${gwProcessCpuUsage:1}%</span>\n        <span class=\"tb-total\">| 1 core</span>\n    </div>\n</div>",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".tb-card-content {\n    width: 100%;\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    align-items: flex-start;\n}\n\n.tb-card-title {\n    width: 100%;\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    font-size: 1.5rem;\n}\n\n.tb-status {\n    width: 24px;\n    height: 24px;\n    position: relative;\n}\n\n.tb-status.status-ok {\n    background: #F3F6FA;\n    border-radius: 4px;\n}\n\n.tb-status:after {\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    font-family: 'Material Icons Round';\n    font-size: 20px;\n    line-height: 1;\n}\n\n.tb-status.status-ok:after {\n    content: \"check\";\n    color: #198038;\n    font-weight: 600;\n}\n\n.tb-status.status-warn:after {\n    content: \"warning\";\n    color: #FAA405;\n}\n\n.tb-status.status-critical:after {\n    content: \"warning\";\n    color: #D12730;\n}\n\n.tb-value-container {\n    user-select: none;\n}\n\n.tb-count {\n    font-style: normal;\n    font-weight: 500;\n    font-size: 26px;\n    line-height: 36px;\n}\n\n.tb-total {\n    padding-left: 4px;\n    font-weight: 500;\n    font-size: 14px;\n    line-height: 20px;\n    color: rgba(0, 0, 0, 0.54);\n}\n\n@media screen and (min-width: 960px) and (max-width: 1819px) {\n    .tb-status {\n        width: 1.25rem;\n        height: 1.25rem;\n    }\n    .tb-status:after {\n        font-size: 1rem;\n    }\n    .tb-count {\n        font-size: 1.25rem;\n        line-height: 24px;\n    }\n    .tb-total {\n        font-size: 11px;\n        line-height: 16px;\n    }\n}"
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "borderRadius": "5px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7f3ebf9f-d967-44fe-fbe4-4667a2abcf88"
      },
      "ea75a492-d149-9a53-b45f-840a0ce42a40": {
        "typeFullFqn": "system.gateway_widgets.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "gwMemory",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.635089967416214,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.gwMemory ?? 0) : 0;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "status",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.07814671673811158,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "const usage = value ? (JSON.parse(value)?.gwMemory ?? 0) : 0;\nlet status = 'status-ok';\nif (usage > 85) {\n    status = 'status-critical';\n} else if (usage > 75) {\n    status = 'status-warn';\n}\nreturn status;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "statusTooltip",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.9557245489511306,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "const usage = value ? (JSON.parse(value)?.gwMemory ?? 0) : 0;\nlet text = '';\nif (usage > 85) {\n    text = '{{ \\'widgets.system-info.ram-critical-text\\' | translate }}';\n} else if (usage > 75) {\n    text = '{{ \\'widgets.system-info.ram-warning-text\\' | translate }}';\n}\nreturn text;"
                },
                {
                  "name": "totalMemory",
                  "type": "attribute",
                  "label": "totalMemory",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.4893025210001585,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value || '0G';"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "16px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "<div class=\"tb-card-content\">\n    <div class=\"tb-card-title\">\n        <div translate>widgets.system-info.ram</div>\n        <div matTooltip=\"${statusTooltip}\" matTooltipPosition=\"above\" class=\"tb-status ${status}\"></div>\n    </div>\n    <div class=\"tb-value-container\" matTooltip=\"${gwMemory:1} / 100 %\" matTooltipPosition=\"above\">\n        <span class=\"tb-count\">${gwMemory:1}%</span>\n        <span class=\"tb-total\">| ${totalMemory}</span>\n    </div>\n</div>",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".tb-card-content {\n    width: 100%;\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    align-items: flex-start;\n}\n\n.tb-card-title {\n    width: 100%;\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    font-size: 1.5rem;\n}\n\n.tb-status {\n    width: 24px;\n    height: 24px;\n    position: relative;\n}\n\n.tb-status.status-ok {\n    background: #F3F6FA;\n    border-radius: 4px;\n}\n\n.tb-status:after {\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    font-family: 'Material Icons Round';\n    font-size: 20px;\n    line-height: 1;\n}\n\n.tb-status.status-ok:after {\n    content: \"check\";\n    color: #198038;\n    font-weight: 600;\n}\n\n.tb-status.status-warn:after {\n    content: \"warning\";\n    color: #FAA405;\n}\n\n.tb-status.status-critical:after {\n    content: \"warning\";\n    color: #D12730;\n}\n\n.tb-value-container {\n    user-select: none;\n}\n\n.tb-count {\n    font-style: normal;\n    font-weight: 500;\n    font-size: 26px;\n    line-height: 36px;\n}\n\n.tb-total {\n    padding-left: 4px;\n    font-weight: 500;\n    font-size: 14px;\n    line-height: 20px;\n    color: rgba(0, 0, 0, 0.54);\n}\n\n@media screen and (min-width: 960px) and (max-width: 1819px) {\n    .tb-status {\n        width: 1.25rem;\n        height: 1.25rem;\n    }\n    .tb-status:after {\n        font-size: 1rem;\n    }\n    .tb-count {\n        font-size: 1.25rem;\n        line-height: 24px;\n    }\n    .tb-total {\n        font-size: 11px;\n        line-height: 16px;\n    }\n}"
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "borderRadius": "5px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ea75a492-d149-9a53-b45f-840a0ce42a40"
      },
      "13b57ab5-e5ed-701c-4c67-5bb1198e9a53": {
        "typeFullFqn": "system.gateway_widgets.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "diskUsage",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.635089967416214,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value ? (JSON.parse(value)?.diskUsage ?? 0) : 0;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "status",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.07814671673811158,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "const usage = value ? (JSON.parse(value)?.diskUsage ?? 0) : 0;\nlet status = 'status-ok';\nif (usage > 85) {\n    status = 'status-critical';\n} else if (usage > 75) {\n    status = 'status-warn';\n}\nreturn status;"
                },
                {
                  "name": "machineStats",
                  "type": "timeseries",
                  "label": "statusTooltip",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.9557245489511306,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "const usage = value ? (JSON.parse(value)?.diskUsage ?? 0) : 0;\nlet text = '';\nif (usage > 85) {\n    text = '{{ \\'widgets.system-info.disk-critical-text\\' | translate }}';\n} else if (usage > 75) {\n    text = '{{ \\'widgets.system-info.disk-warning-text\\' | translate }}';\n}\nreturn text;"
                },
                {
                  "name": "totalDisk",
                  "type": "attribute",
                  "label": "totalDisk",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6337011250870808,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value || '0G';"
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "16px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "<div class=\"tb-card-content\">\n    <div class=\"tb-card-title\">\n        <div translate>widgets.system-info.disk</div>\n        <div matTooltip=\"${statusTooltip}\" matTooltipPosition=\"above\" class=\"tb-status ${status}\"></div>\n    </div>\n    <div class=\"tb-value-container\" matTooltip=\"${diskUsage:1} / 100 %\" matTooltipPosition=\"above\">\n        <span class=\"tb-count\">${diskUsage:1}%</span>\n        <span class=\"tb-total\">| ${totalDisk}</span>\n    </div>\n</div>",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".tb-card-content {\n    width: 100%;\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    align-items: flex-start;\n}\n\n.tb-card-title {\n    width: 100%;\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    font-size: 1.5rem;\n}\n\n.tb-status {\n    width: 24px;\n    height: 24px;\n    position: relative;\n}\n\n.tb-status.status-ok {\n    background: #F3F6FA;\n    border-radius: 4px;\n}\n\n.tb-status:after {\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    font-family: 'Material Icons Round';\n    font-size: 20px;\n    line-height: 1;\n}\n\n.tb-status.status-ok:after {\n    content: \"check\";\n    color: #198038;\n    font-weight: 600;\n}\n\n.tb-status.status-warn:after {\n    content: \"warning\";\n    color: #FAA405;\n}\n\n.tb-status.status-critical:after {\n    content: \"warning\";\n    color: #D12730;\n}\n\n.tb-value-container {\n    user-select: none;\n}\n\n.tb-count {\n    font-style: normal;\n    font-weight: 500;\n    font-size: 26px;\n    line-height: 36px;\n}\n\n.tb-total {\n    padding-left: 4px;\n    font-weight: 500;\n    font-size: 14px;\n    line-height: 20px;\n    color: rgba(0, 0, 0, 0.54);\n}\n\n@media screen and (min-width: 960px) and (max-width: 1819px) {\n    .tb-status {\n        width: 1.25rem;\n        height: 1.25rem;\n    }\n    .tb-status:after {\n        font-size: 1rem;\n    }\n    .tb-count {\n        font-size: 1.25rem;\n        line-height: 24px;\n    }\n    .tb-total {\n        font-size: 11px;\n        line-height: 16px;\n    }\n}"
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "borderRadius": "5px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "13b57ab5-e5ed-701c-4c67-5bb1198e9a53"
      },
      "867613d5-9440-fac1-9156-cd8773df5c97": {
        "typeFullFqn": "system.gateway_widgets.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "dataKeys": []
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "<div class=\"tb-card-content\">\n    <tb-dashboard-state class=\"flex-1\" stateId=\"machine_statistics_info\" [ctx]=\"ctx\"></tb-dashboard-state>\n</div>",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": false,
            "markdownCss": ".tb-card-content {\n    width: 100%;\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n}"
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": false,
          "enableFullscreen": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "867613d5-9440-fac1-9156-cd8773df5c97"
      },
      "7a34986a-ec7f-4c64-84f9-338cf1626722": {
        "typeFullFqn": "system.gateway_widgets.gateway_custom_statistics",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
              "dataKeys": [],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "shadowSize": 4,
            "fontColor": "#545454",
            "fontSize": 10,
            "xaxis": {
              "showLabels": true,
              "color": "#545454"
            },
            "yaxis": {
              "showLabels": true,
              "color": "#545454"
            },
            "grid": {
              "color": "#545454",
              "tickColor": "#DDDDDD",
              "verticalLines": true,
              "horizontalLines": true,
              "outlineWidth": 1
            },
            "legend": {
              "show": true,
              "position": "nw",
              "backgroundColor": "#f0f0f0",
              "backgroundOpacity": 0.85,
              "labelBoxBorderColor": "rgba(1, 1, 1, 0.45)"
            },
            "decimals": 1,
            "stack": false,
            "tooltipIndividual": false,
            "showLegend": false
          },
          "title": "Gateway custom statistics ",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "mobileHeight": null,
          "useDashboardTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "margin": "16px",
          "borderRadius": "5px",
          "widgetStyle": {},
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7a34986a-ec7f-4c64-84f9-338cf1626722"
      },
      "699b8980-7180-3600-ec29-6af50325a2e1": {
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": true,
            "entityNameColumnTitle": "Device Name",
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false
          },
          "title": "Devices",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": null,
              "entityAliasId": "a75d9031-ba51-8da4-81be-de65061b72f4",
              "filterId": "774c2598-a4fe-e813-87aa-bf00b78043a3",
              "dataKeys": [
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Device Type",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3129929097366162,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "active",
                  "type": "attribute",
                  "label": "Status",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "useCellContentFunction": true,
                    "cellContentFunction": "let cssClass;\r\nswitch (value) {\r\n      case \"Active\":\r\n        cssClass = \"status status-active\";\r\n        break;\r\n      case \"Inactive\":\r\n           default:\r\n        cssClass = \"status status-inactive\";\r\n        break;\r\n    }\r\n    \r\n    return `<span class='${cssClass}'>${value}</span>`;",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled"
                  },
                  "_hash": 0.5969880627410065,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": true,
                  "postFuncBody": "return value == 'true' ? \"Active\": \"Inactive\";"
                },
                {
                  "name": "connectorName",
                  "type": "attribute",
                  "label": "Connector Name",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.012483045440007778,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "connectorType",
                  "type": "attribute",
                  "label": "Connector Type",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6004192233378134,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleTooltip": "",
          "widgetStyle": {},
          "widgetCss": ".status {\r\n    border-radius: 20px;\r\n    font-weight: 500;\r\n    padding: 5px 15px;\r\n  }\r\n\r\n  .status-active {\r\n    color: green;\r\n    background: rgba(0, 128, 0, 0.1);\r\n  }\r\n\r\n  .status-inactive {\r\n    color: red;\r\n    background: rgba(255, 0, 0, 0.1);\r\n  }\r\n",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "enableDataExport": false,
          "actions": {
            "actionCellButton": [
              {
                "name": "Show Device Info",
                "icon": "info",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "const url = `${window.location.origin + widgetContext.utils.getEntityDetailsPageURL(entityId.id, entityId.entityType)}`;\nwindow.open(url, '_blank');",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "89e0155f-c2c5-8d17-324c-280f8e11ffab"
              }
            ]
          }
        },
        "row": 0,
        "col": 0,
        "id": "699b8980-7180-3600-ec29-6af50325a2e1",
        "typeFullFqn": "system.cards.entities_table"
      }
    },
    "states": {
      "default": {
        "name": "Gateway List",
        "root": true,
        "layouts": {
          "main": {
            "widgets": {
              "23b9adc5-b3bd-040f-e5eb-a45925c73257": {
                "sizeX": 48,
                "sizeY": 23,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 48,
              "margin": 12,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": true,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "configuration": {
        "name": "Configuration",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d4a1ffc4-c9f6-7b15-bca0-17feb58bac99": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0,
                "mobileHeight": null
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 12,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": true,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "connectors": {
        "name": "Connectors",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "02a05113-d878-b086-328e-75bd6f02b2bb": {
                "sizeX": 24,
                "sizeY": 12,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": true,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_details": {
        "name": "${entityName}",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "79f59106-758f-c428-8b93-4341faea705d": {
                "sizeX": 40,
                "sizeY": 3,
                "row": 0,
                "col": 0,
                "mobileHeight": 5,
                "mobileOrder": 2
              },
              "60dcf518-8fc3-3539-8ff8-ce94bda39f3a": {
                "sizeX": 40,
                "sizeY": 10,
                "row": 12,
                "col": 0
              },
              "fb9df382-6ef3-4aa6-bc13-8bf8e300ba19": {
                "sizeX": 8,
                "sizeY": 3,
                "row": 0,
                "col": 40,
                "mobileOrder": 0,
                "mobileHeight": 1
              },
              "61d149e8-b249-5526-e5d7-6ad58413982e": {
                "sizeX": 8,
                "sizeY": 19,
                "row": 3,
                "col": 40,
                "mobileOrder": 1,
                "mobileHeight": 3
              },
              "3d661190-7463-ba61-6793-503c85af67ec": {
                "sizeX": 40,
                "sizeY": 9,
                "row": 3,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 48,
              "margin": 10,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "logs": {
        "name": "Logs",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "27e6b37c-085e-824d-fb13-69651a545ec1": {
                "sizeX": 48,
                "sizeY": 16,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 48,
              "margin": 12,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": true,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "connector_logs": {
        "name": "Logs",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "bcd04dbf-c82a-ca13-6e88-a74f32b4348a": {
                "sizeX": 24,
                "sizeY": 10,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 12,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "remote_shell": {
        "name": "Remote Shell",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "2a318e56-5c83-4f82-bf23-df72dd7e3edf": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "rpc": {
        "name": "RPC",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "da01e13f-c108-39fd-2a74-b40da088769a": {
                "sizeX": 45,
                "sizeY": 10,
                "row": 12,
                "col": 0,
                "mobileOrder": 1
              },
              "ce3065bf-d898-2c03-6236-ce1b6cdf1f3f": {
                "sizeX": 45,
                "sizeY": 9,
                "row": 22,
                "col": 0,
                "mobileOrder": 2
              },
              "46b68eb5-7e2d-bca1-c2ef-061b64575218": {
                "sizeX": 45,
                "sizeY": 12,
                "row": 0,
                "col": 0,
                "mobileOrder": 0,
                "mobileHeight": 8
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 45,
              "margin": 12,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "connector_rpc": {
        "name": "Connector RPC",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "878c68fd-71cb-21d4-684a-b5b5a4526b43": {
                "sizeX": 48,
                "sizeY": 13,
                "row": 0,
                "col": 0,
                "mobileOrder": 0,
                "mobileHeight": 8
              },
              "0fc7dcf3-32a2-0159-738e-96956bf0d450": {
                "sizeX": 48,
                "sizeY": 10,
                "row": 13,
                "col": 0,
                "mobileOrder": 1,
                "mobileHeight": null
              },
              "6e136fbc-545b-4926-c0a9-79348f35628a": {
                "sizeX": 48,
                "sizeY": 9,
                "row": 23,
                "col": 0,
                "mobileOrder": 2
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 48,
              "margin": 12,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "outerMargin": true,
              "layoutType": "default"
            }
          }
        }
      },
      "storage_statistics": {
        "name": "Storage statistics",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "b4194e1e-97af-ed0b-a6a4-70011c71c579": {
                "sizeX": 5,
                "sizeY": 12,
                "resizable": true,
                "row": 0,
                "col": 25,
                "mobileOrder": 1,
                "mobileHeight": 3
              },
              "3a005e49-327c-beaa-8d19-c36b833001f0": {
                "sizeX": 25,
                "sizeY": 14,
                "row": 0,
                "col": 0,
                "resizable": true,
                "mobileOrder": 2,
                "mobileHeight": null
              },
              "bc199c75-00da-ca8a-dd0d-16da97a9fa53": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 12,
                "col": 25,
                "resizable": true,
                "preserveAspectRatio": false,
                "mobileOrder": 3,
                "mobileHeight": 2
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 30,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "minColumns": 25,
              "viewFormat": "grid",
              "autoFillHeight": true,
              "rowHeight": 70,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70
            }
          }
        }
      },
      "machine_statistics": {
        "name": "Machine statistics",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "867613d5-9440-fac1-9156-cd8773df5c97": {
                "sizeX": 25,
                "sizeY": 14,
                "row": 0,
                "col": 0,
                "resizable": true,
                "mobileOrder": 2,
                "mobileHeight": null
              },
              "b4194e1e-97af-ed0b-a6a4-70011c71c579": {
                "sizeX": 5,
                "sizeY": 12,
                "resizable": true,
                "row": 0,
                "col": 25,
                "mobileOrder": 1,
                "mobileHeight": 3
              },
              "bc199c75-00da-ca8a-dd0d-16da97a9fa53": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 12,
                "col": 25,
                "resizable": true,
                "mobileOrder": 3,
                "mobileHeight": 2
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 30,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "minColumns": 25,
              "viewFormat": "grid",
              "autoFillHeight": true,
              "rowHeight": 70,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70
            }
          }
        }
      },
      "storage_statistics_info": {
        "name": "Storage statistics info",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "5f26fe0d-4417-31c6-0a98-8760cda909c5": {
                "sizeX": 6,
                "sizeY": 3,
                "mobileHeight": 3,
                "resizable": true,
                "row": 0,
                "col": 0,
                "mobileOrder": 1
              },
              "dc060491-215c-3e63-edc2-66d52888735d": {
                "sizeX": 6,
                "sizeY": 3,
                "mobileHeight": 3,
                "resizable": true,
                "row": 3,
                "col": 0,
                "mobileOrder": 2
              },
              "b37b2916-acd7-353b-6fbc-ceddac152ee8": {
                "sizeX": 15,
                "sizeY": 6,
                "mobileHeight": 6,
                "resizable": true,
                "row": 0,
                "col": 6,
                "mobileOrder": 3
              },
              "b5ffefb2-9fb5-cf22-bba2-dba9a98891db": {
                "sizeX": 21,
                "sizeY": 7,
                "mobileHeight": 6,
                "resizable": true,
                "row": 6,
                "col": 0,
                "mobileOrder": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 16,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "minColumns": 21,
              "viewFormat": "grid",
              "autoFillHeight": false,
              "rowHeight": 70,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70
            }
          }
        }
      },
      "machine_statistics_info": {
        "name": "Machine statistics info",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7543e668-35b7-bb97-2f14-163399f8d038": {
                "sizeX": 21,
                "sizeY": 9,
                "mobileHeight": 6,
                "resizable": true,
                "row": 3,
                "col": 0,
                "mobileOrder": 4
              },
              "7f3ebf9f-d967-44fe-fbe4-4667a2abcf88": {
                "sizeX": 7,
                "sizeY": 3,
                "resizable": true,
                "row": 0,
                "col": 0,
                "mobileOrder": 1,
                "mobileHeight": 2
              },
              "ea75a492-d149-9a53-b45f-840a0ce42a40": {
                "sizeX": 7,
                "sizeY": 3,
                "resizable": true,
                "row": 0,
                "col": 7,
                "mobileOrder": 2,
                "mobileHeight": 2
              },
              "13b57ab5-e5ed-701c-4c67-5bb1198e9a53": {
                "sizeX": 7,
                "sizeY": 3,
                "resizable": true,
                "row": 0,
                "col": 14,
                "mobileOrder": 3,
                "mobileHeight": 2
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 16,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "minColumns": 21,
              "viewFormat": "grid",
              "autoFillHeight": false,
              "rowHeight": 70,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70
            }
          }
        }
      },
      "gateway_devices_all": {
        "name": "Gateway devices",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "1615bd4e-c0a4-c32c-3706-3c83214cb8d7": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_bacnet": {
        "name": "gateway_devices_bacnet",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "c3d39b60-a668-7f5e-e6f4-cae27151f4aa": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_ble": {
        "name": "gateway_devices_ble",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "cf2eba6b-44f6-9cc2-6089-35c735f54898": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_can": {
        "name": "gateway_devices_can",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "b06cecaa-2806-65a9-782d-4f2d8cf95a6c": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_custom": {
        "name": "gateway_devices_custom",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "75b6372d-4def-42b4-8774-4edf413a8b83": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_ftp": {
        "name": "gateway_devices_ftp",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "819c1d39-de7c-8ac3-858e-0040d286823e": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_grpc": {
        "name": "gateway_devices_grpc",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d64482d8-001a-6f33-9b56-665530098fe5": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_modbus": {
        "name": "gateway_devices_modbus",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7f676bb2-bde2-10e7-80d8-25dd734e8e22": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_mqtt": {
        "name": "gateway_devices_mqtt",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "aafba3d8-a381-21c0-ecbe-446da3cdc041": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": true,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_ocpp": {
        "name": "gateway_devices_ocpp",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d1951ec7-ab13-87e4-bc05-ce2318dca353": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_odbc": {
        "name": "gateway_devices_odbc",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "f78a0d66-60cb-188f-857f-9acd4d24bd5a": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_opcua": {
        "name": "gateway_devices_opcua",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "bb27723a-989c-2327-5808-b56d490b93ab": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_request": {
        "name": "gateway_devices_request",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "3f6ed61b-f5af-13e3-7505-f69fd53f8211": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_rest": {
        "name": "gateway_devices_rest",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "b81a171c-77c0-b857-21d2-cff02a1cb733": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_snmp": {
        "name": "gateway_devices_snmp",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "0e399bef-01d2-4e4e-02d2-e254ebe91e56": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_socket": {
        "name": "gateway_devices_socket",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d4f73f32-f719-98bb-d427-b5c8957e8f47": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_xmpp": {
        "name": "gateway_devices_xmpp",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "f16a258c-3f6c-9317-fda7-48b33d8fe8b9": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "gateway_devices_knx": {
        "name": "gateway_devices_knx",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "699b8980-7180-3600-ec29-6af50325a2e1": {
                "sizeX": 24,
                "sizeY": 11,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "autoFillHeight": false,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70,
              "layoutType": "default"
            }
          }
        }
      },
      "custom_statistics": {
        "name": "Custom statistics",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7a34986a-ec7f-4c64-84f9-338cf1626722": {
                "sizeX": 20,
                "sizeY": 14,
                "mobileHeight": null,
                "row": 0,
                "col": 0,
                "resizable": true,
                "mobileOrder": 2
              },
              "b4194e1e-97af-ed0b-a6a4-70011c71c579": {
                "sizeX": 4,
                "sizeY": 12,
                "resizable": true,
                "row": 0,
                "col": 20
              },
              "bc199c75-00da-ca8a-dd0d-16da97a9fa53": {
                "sizeX": 4,
                "sizeY": 2,
                "preserveAspectRatio": false,
                "resizable": true,
                "row": 12,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 0,
              "outerMargin": true,
              "backgroundSizeMode": "100%",
              "minColumns": 24,
              "viewFormat": "grid",
              "autoFillHeight": true,
              "rowHeight": 70,
              "backgroundImageUrl": null,
              "mobileAutoFillHeight": false,
              "mobileRowHeight": 70
            }
          }
        }
      },
      "gateway_status": {
        "name": "gateway_status",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "bc199c75-00da-ca8a-dd0d-16da97a9fa53": {
                "sizeX": 5,
                "sizeY": 3,
                "preserveAspectRatio": false,
                "resizable": true,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      }
    },
    "entityAliases": {
      "9b7a1caa-3510-3daa-e05a-fc39b851d2c1": {
        "id": "9b7a1caa-3510-3daa-e05a-fc39b851d2c1",
        "alias": "Devices",
        "filter": {
          "type": "entityType",
          "resolveMultiple": true,
          "entityType": "DEVICE"
        }
      },
      "a2f01c66-96cf-49c5-303f-e6f21c559ee8": {
        "id": "a2f01c66-96cf-49c5-303f-e6f21c559ee8",
        "alias": "Selected Gateway",
        "filter": {
          "type": "stateEntity",
          "resolveMultiple": false,
          "stateEntityParamName": "",
          "defaultStateEntity": null
        }
      },
      "a75d9031-ba51-8da4-81be-de65061b72f4": {
        "id": "a75d9031-ba51-8da4-81be-de65061b72f4",
        "alias": "GatewayDevices",
        "filter": {
          "type": "relationsQuery",
          "resolveMultiple": true,
          "rootStateEntity": true,
          "stateEntityParamName": null,
          "defaultStateEntity": null,
          "rootEntity": null,
          "direction": "FROM",
          "maxLevel": 1,
          "fetchLastLevelOnly": false,
          "filters": [
            {
              "relationType": "Created",
              "entityTypes": [
                "DEVICE"
              ]
            }
          ]
        }
      },
      "e3ea8714-bd05-67aa-8413-e07e93d53930": {
        "id": "e3ea8714-bd05-67aa-8413-e07e93d53930",
        "alias": "Current User",
        "filter": {
          "type": "singleEntity",
          "resolveMultiple": false,
          "singleEntity": {
            "entityType": "CURRENT_USER",
            "id": "13814000-1dd2-11b2-8080-808080808080"
          }
        }
      }
    },
    "filters": {
      "abdfdcf9-75d4-001d-783a-920cb8e2a7e1": {
        "id": "abdfdcf9-75d4-001d-783a-920cb8e2a7e1",
        "filter": "Gateway",
        "keyFilters": [
          {
            "key": {
              "type": "ENTITY_FIELD",
              "key": "additionalInfo"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "CONTAINS",
                  "value": {
                    "defaultValue": "\"gateway\":true",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "bd33a006-fd40-3efc-7863-505c6e64f2b8": {
        "id": "bd33a006-fd40-3efc-7863-505c6e64f2b8",
        "filter": "isActive",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "active"
            },
            "valueType": "BOOLEAN",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": true,
                    "dynamicValue": null
                  },
                  "type": "BOOLEAN"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "956cf341-7cdf-82a7-ea2a-50cc9586f1f1": {
        "id": "956cf341-7cdf-82a7-ea2a-50cc9586f1f1",
        "filter": "isInactive",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "active"
            },
            "valueType": "BOOLEAN",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "type": "BOOLEAN",
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": false
                  }
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "bd9176e1-9e04-3e9b-d5a5-07b72bb9ae90": {
        "id": "bd9176e1-9e04-3e9b-d5a5-07b72bb9ae90",
        "filter": "gateway_devices_mqtt",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "mqtt",
                    "dynamicValue": null
                  },
                  "ignoreCase": true,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "44038462-1bae-e075-7b31-283341cb2295": {
        "id": "44038462-1bae-e075-7b31-283341cb2295",
        "filter": "gateway_devices_modbus",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "modbus",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "884e9c34-7534-a483-99be-81b56cd91185": {
        "id": "884e9c34-7534-a483-99be-81b56cd91185",
        "filter": "gateway_devices_grpc",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "grpc",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "e91ca0e9-1653-4fbc-5f3d-3da021b1b415": {
        "id": "e91ca0e9-1653-4fbc-5f3d-3da021b1b415",
        "filter": "gateway_devices_opcua",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "opcua",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "3931abd5-2205-9386-6ea9-8e8a8131bb9d": {
        "id": "3931abd5-2205-9386-6ea9-8e8a8131bb9d",
        "filter": "gateway_devices_opcua_asyncio",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "opcua_asyncio",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "3f74cbaa-6353-5e88-a7e8-708fc0e18039": {
        "id": "3f74cbaa-6353-5e88-a7e8-708fc0e18039",
        "filter": "gateway_devices_ble",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "ble",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "c08eee84-64ee-73c4-8d96-c0df813a92cd": {
        "id": "c08eee84-64ee-73c4-8d96-c0df813a92cd",
        "filter": "gateway_devices_request",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "request",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "2f0af7f5-22ea-c0d5-3aef-7f2bb1b534ec": {
        "id": "2f0af7f5-22ea-c0d5-3aef-7f2bb1b534ec",
        "filter": "gateway_devices_can",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "can",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "774c2598-a4fe-e813-87aa-bf00b78043a3": {
        "id": "774c2598-a4fe-e813-87aa-bf00b78043a3",
        "filter": "gateway_devices_knx",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "knx",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "92a7d208-c143-ea20-5162-1da584532830": {
        "id": "92a7d208-c143-ea20-5162-1da584532830",
        "filter": "gateway_devices_bacnet",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "bacnet",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "498f090c-b1e5-df74-35d1-3ecf89d33f1c": {
        "id": "498f090c-b1e5-df74-35d1-3ecf89d33f1c",
        "filter": "gateway_devices_odbc",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "odbc",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "9175179d-a8db-848b-0762-e78da150e768": {
        "id": "9175179d-a8db-848b-0762-e78da150e768",
        "filter": "gateway_devices_rest",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "rest",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "1b70460b-428b-2aed-f23a-65927d3e67bb": {
        "id": "1b70460b-428b-2aed-f23a-65927d3e67bb",
        "filter": "gateway_devices_snmp",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "snmp",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "ae357478-b4c2-eee8-dde6-a6942fe6202f": {
        "id": "ae357478-b4c2-eee8-dde6-a6942fe6202f",
        "filter": "gateway_devices_ftp",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "ftp",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "6eef4979-369f-c2cc-4894-96a84b6a668a": {
        "id": "6eef4979-369f-c2cc-4894-96a84b6a668a",
        "filter": "gateway_devices_socket",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "socket",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "9c8e3a63-01a1-64b5-fe44-4f58f8350340": {
        "id": "9c8e3a63-01a1-64b5-fe44-4f58f8350340",
        "filter": "gateway_devices_xmpp",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "xmpp",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "c6501413-d823-29c4-992f-9ae6e8e25549": {
        "id": "c6501413-d823-29c4-992f-9ae6e8e25549",
        "filter": "gateway_devices_ocpp",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "ocpp",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      },
      "2f04d6e5-8438-857a-ca78-ae78cc8b0c03": {
        "id": "2f04d6e5-8438-857a-ca78-ae78cc8b0c03",
        "filter": "gateway_devices_custom",
        "keyFilters": [
          {
            "key": {
              "type": "ATTRIBUTE",
              "key": "connectorType"
            },
            "valueType": "STRING",
            "predicates": [
              {
                "keyFilterPredicate": {
                  "operation": "EQUAL",
                  "value": {
                    "defaultValue": "custom",
                    "dynamicValue": null
                  },
                  "ignoreCase": false,
                  "type": "STRING"
                },
                "userInfo": {
                  "editable": true,
                  "label": "",
                  "autogeneratedLabel": true,
                  "order": 0
                }
              }
            ]
          }
        ],
        "editable": true
      }
    },
    "timewindow": {
      "hideAggregation": false,
      "hideAggInterval": false,
      "hideTimezone": false,
      "selectedTab": 0,
      "realtime": {
        "realtimeType": 0,
        "interval": 120000,
        "timewindowMs": 900000,
        "quickInterval": "CURRENT_DAY",
        "hideInterval": false,
        "hideLastInterval": false,
        "hideQuickInterval": false
      },
      "history": {
        "historyType": 0,
        "interval": 120000,
        "timewindowMs": 900000,
        "fixedTimewindow": {
          "startTimeMs": 1686306375309.7058,
          "endTimeMs": 1686307998839.1177
        },
        "quickInterval": "CURRENT_DAY",
        "hideInterval": false,
        "hideLastInterval": false,
        "hideFixedInterval": false,
        "hideQuickInterval": false
      },
      "aggregation": {
        "type": "NONE",
        "limit": 25000
      },
      "timezone": null
    },
    "settings": {
      "stateControllerId": "entity",
      "showTitle": false,
      "showDashboardsSelect": false,
      "showEntitiesSelect": false,
      "showDashboardTimewindow": true,
      "showDashboardExport": false,
      "toolbarAlwaysOpen": true,
      "titleColor": "rgba(0,0,0,0.870588)",
      "showDashboardLogo": false,
      "dashboardLogoUrl": null,
      "hideToolbar": false,
      "showFilters": false,
      "showUpdateDashboardImage": false,
      "dashboardCss": ""
    }
  },
  "name": "ThingsBoard IoT Gateways",
  "resources": null
}